var elementArgs;

function SelectMediaItem(sender, args) 
{
    var pageType = args.PageType;
    var win = window.open("/Templates/MediaBrowser.aspx?mediaType="+args.MediaFileType + "&pageType=" + pageType,null,"height=550,width=850,status=yes,toolbar=no,menubar=no,location=no, scrollbars=1");
    win.focus();
    this.elementArgs = args;
    return false;
}

function selectedItem(sender, args) {

    if (elementArgs.AllowFlash)
    {
        var isFlash = args.Url.indexOf(".swf") != -1;
        if(isFlash==true) 
        {
            var flashSwf = eval(elementArgs.SwfObjectName);       
            flashSwf.addVariable("flashSrc", args.Url);
            flashSwf.write(this.elementArgs.ContainerId);
        }
        else 
        {
            var container = document.getElementById(this.elementArgs.ContainerId);
            //insert img into container   
            container.innerHTML = "<img src='"+args.Url+"' width='"+this.elementArgs.Width+"' height='"+this.elementArgs.Height+"' />";
        }
    }
    else
    {
        var container = document.getElementById(this.elementArgs.ImageId);
        container.src = args.Url;
    }
    var control = document.getElementById(this.elementArgs.ControlId);
    control.value = args.ContentId;

}

function createChildElement(parentNode, childNode) {
    parentNode.appendChild(childNode);
}

///
//Function return an array of elements of a class
//Use node to define a parent node
//Use tag to specify a tag type
///
function getElementsByClass(searchClass,node,tag) {
	var classElements = [];
	if ( node == null || node == "")
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp('(^|\\s)'+searchClass+'(\\s|$)');
	var i;
	var j = 0; 
	for (i = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

///
//Mimic left and right functions
//for string manipulation
///
function left(str, n){
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}
function right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}

String.prototype.trim = function () {
  return this.replace(/^\s*(\S*(\s+\S+)*)\s*$/, "$1");
};

///
//Provide access to the querystring as 
//name-value pairs, Adam Vandenberg
///
function Querystring(qs) {
	this.params = new Object();
	this.get=querystring_get;
	if (qs == null)
		qs=location.search.substring(1,location.search.length);
	if (qs.length == 0) return;
	qs = qs.replace(/\+/g, ' ');
	var args = qs.split('&');
	for (var i=0;i<args.length;i++) {
		var value;
		var pair = args[i].split('=')
		var name = unescape(pair[0])

		if (pair.length == 2)
			value = unescape(pair[1])
		else
			value = name
		
		this.params[name] = value
	}
}

function querystring_get(key, default_) {
	if (default_ == null) default_ = null;
	var value=this.params[key]
	if (value==null) value=default_;
	
	return value
}

function toggleElementDisplayType(elementID) {
    var element = $(elementID);
    if(element.style.display == "block") {
       element.style.display = "none"; 
    }
    else {
       element.style.display = "block";
    }
}

function ClearDefault(el) {
  if (el.defaultValue==el.value) el.value = "";
}

function formatString(str)
{
  for(i = 1; i < arguments.length; i++)
  {
    str = str.replace('{' + (i - 1) + '}', arguments[i]);
  }
  return str;
}


//Limits the max length of a text area
//Optionally displays the remaining available chars
function limitText(limitField, limitNum, limitCountFieldId) {
    if (limitField.value.length > limitNum) {
        limitField.value = limitField.value.substring(0, limitNum);
    } else {
     if (limitCountFieldId) {
         var limitCountEl = document.getElementById(limitCountFieldId);
         if (limitCountEl) 
         {
             limitCountEl.innerHTML = limitNum - limitField.value.length;
         }
     }
    }
}

    function waterMark(txt, evt, waterMarkText, cssClassName) {
        if (txt.value.length == 0 && evt.type == "blur") {
            txt.setAttribute("class", cssClassName);
            txt.setAttribute("className", cssClassName);
            txt.value = waterMarkText;
            return;
        }
        if (txt.value == waterMarkText && evt.type == "focus") {
            txt.setAttribute("class", cssClassName);
            txt.setAttribute("className", cssClassName);
            txt.value = "";
            return;
        }
    }

    window.onbeforeunload = function() {
        if ($j("[id$='_hdnPageDirtyFlag']").val() == 'True') {
            setTimeout(function() { cancelPageUnload(); }, 500);
            return "You haven't saved your changes.";
        }
    };

    setPageDirtyFlag = function(isDirty) {
        $j("[id$='_hdnPageDirtyFlag']").val(isDirty);
    }

    isPageDirty = function() {
        return $j("[id$='_hdnPageDirtyFlag']").val() = 'True';
    }

    cancelPageUnload = function() {
        if (isPageDirty) {
            onCancelPageUnload();
        }
    }

