
//---------------------------------------------------------------------------------------------------------------------------------
//-- Popup "I want to Box" functions
//---------------------------------------------------------------------------------------------------------------------------------

function F_SelectRow ( objElement )
{
    var objParent = JS_Utils_GetParent(JS_Utils_GetParent(objElement));

    // only if checkbox is enabled
	if (objElement.disabled == true && objElement.checked) objParent.className = "Highlighted";
	else objParent.className = "";
}

function F_CheckRows ( strElement )
{
	var objElement = document.getElementById ( strElement );
	var arInputs = objElement.getElementsByTagName ( "input" );

	for ( var i=0; i<arInputs.length; i++ )
	{
		F_SelectRow ( arInputs[i] );
	}	
}

function F_SelectAll ( strElement )
{
	var objElement = document.getElementById ( strElement );
	var arInputs = objElement.getElementsByTagName ( "input" );
	
	for ( var i=0; i<arInputs.length; i++ )
	{
	    if (arInputs[i].disabled == false) { // only if checkbox is enabled
	        arInputs[i].checked = true;
	        F_SelectRow(arInputs[i]);
	    }
	}	
}

function F_DeselectAll ( strElement )
{
	var objElement = document.getElementById ( strElement );
	var arInputs = objElement.getElementsByTagName ( "input" );
	
	for ( var i=0; i<arInputs.length; i++ )
	{
		arInputs[i].checked = false;
		F_SelectRow ( arInputs[i] );
	}	
}


function JS_Utils_GetParent ( objElement )
{
	 if ( objElement.parentElement ) { return objElement.parentElement };
	 if ( objElement.parentNode ) { return objElement.parentNode };
	 if ( objElement.parent ) { return objElement.parent };
	 return;
}

function JS_Utils_ShowHide ( objElement, bShow )
{
	if ( bShow == null )
	{
		if ( objElement.style.display == "block" ) objElement.style.display = "none";
		else objElement.style.display = "block";
	}
	else
	{
		if ( bShow ) objElement.style.display = "block";
		else objElement.style.display = "none";
	}
}

//---------------------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------------

//handle radio buttons in repeaters
function SetUniqueRadioButton(nameregex, current)
{
   re = new RegExp(nameregex);
   for(i = 0; i < document.forms[0].elements.length; i++)
   {
      elm = document.forms[0].elements[i]
      if (elm.type == 'radio')
      {
         if (re.test(elm.name))
         {
            elm.checked = false;
         }
      }
   }
   current.checked = true;
}

//---------------------------------------------------------------------------------------------------------------------------------
//-- Popup Modal (for form submission and ajax)
//---------------------------------------------------------------------------------------------------------------------------------

var objModal;

function JS_Utils_ShowModal ()
{
	// hide selects if IE6
	bIsIE6 = /msie|MSIE 6/.test(navigator.userAgent);
	if ( bIsIE6 )
	{
		var arSelects = document.getElementsByTagName("select");
		for ( var n=0; n<arSelects.length; n++ ) arSelects[n].style.display = "none";
		
		window.scrollTo(0,0); // send to top of page, ie6 only
	}
	
	// require modal item to be on the page
	objModal = document.getElementById("divModal");
	
	if ( objModal ) objModal.style.display = "block";
	
	return true;
}

function JS_Utils_HideModal ()
{
	if ( objModal ) objModal.style.display = "none";
}

//---------------------------------------------------------------------------------------------------------------------------------
//-- Folder Functions
//---------------------------------------------------------------------------------------------------------------------------------

function F_Folder_Toggle ( objLink )
{
	var objContainer = JS_Utils_GetParent ( JS_Utils_GetParent ( objLink ) );
	var arInnerDivs= objContainer.getElementsByTagName ( "div" );
	
	F_Folder_ShowHide ( arInnerDivs[0] );
}

function F_Folder_ShowHide ( objElement, bShow )
{
	if ( bShow == null )
	{
		if ( objElement.className == "Hide" ) objElement.className = "Show";
		else objElement.className = "Hide";
	}
	else
	{
		if ( bShow ) objElement.className = "Show";
		else objElement.className = "Hide";
	}	
}
	
function F_Folder_Hide ()
{
	var arInnerDivs = document.getElementsByTagName ( "div" );
	for ( var i=0; i<arTables.length; i++ ) JS_Utils_ShowHide ( arInnerDivs[i] );
}

//---------------------------------------------------------------------------------------------------------------------------------
//-- Content Collapse
//---------------------------------------------------------------------------------------------------------------------------------

function JS_Utils_Collapse ( objSender )
{
	var objHolder = JS_Utils_GetParent ( JS_Utils_GetParent ( objSender ) );
	var arTargets = objHolder.getElementsByTagName("div");
	
	for ( var n=0; n<arTargets.length; n++ )
	{
		if ( arTargets[n].className == "Collapse" )
		{
			JS_Utils_ShowHide ( arTargets[n] );
		}
	}
}

function JS_Utils_DisableCollapseIE6 ( strHolder )
{
	var bIsIE6 = false;
	if (window.XMLHttpRequest) {
	// IE 7, mozilla, safari, opera 9
	} else {
	// IE6, older browsers
	bIsIE6 = true;
	}
		
	if ( bIsIE6 )
	{
		var objHolder = null;	
		var arTargets = null;
		var objParent = null;
		var arParentList = new Array ();
		var arTargetText = new Array ();
	
		if ( strHolder == null )
		{
			objHolder = document;
		}
		else
		{
			objHolder = document.getElementById(strHolder);
		}
	
		// deal with links	
		arTargets = objHolder.getElementsByTagName("a");
		for ( var n=0; n<arTargets.length; n++ )
		{
			if ( arTargets[n].className == "Collapse" )
			{
				objParent = JS_Utils_GetParent ( arTargets[n] ); // get link parent
				arParentList.push ( objParent );
				arTargetText.push ( arTargets[n].innerText );
			}
		}
		
		// replace links with plain link text
		for ( var n=0; n<arParentList.length; n++ )
		{
			arParentList[n].innerHTML = arTargetText[n];
		}
		
		// deal with content blocks
		arTargets = objHolder.getElementsByTagName("div");
		for ( var n=0; n<arTargets.length; n++ )
		{
			if ( arTargets[n].className == "Collapse" )
			{
				arTargets[n].style.display = "block"; // change the collapse style so it is displayed
			}
		}
	}
}

//---------------------------------------------------------------------------------------------------------------------------------
//-- Font Size Cookie
//-- created by Ahmed Hidabi on 12 Jan 2009
//-- modified by Ahmed Hidabi on 19 Jan 2010
//---------------------------------------------------------------------------------------------------------------------------------

//Check on pageload whether the cookie exist
function F_Font_CheckCookie() {
    var strCookieVal = F_Font_GetCookie("fsizeCookie");
    if (strCookieVal != null) F_Font_ApplyStyle(strCookieVal);
}

//Set cookie when clicking a href (small/medium/large)
function F_Font_SetCookie(c_name, c_size, expiredays) {
    var exdate = new Date();
    exdate.setDate(exdate.getDate() + expiredays);
    
    //destroy the cookie if exists first
    //document.cookie = c_name + "=null; expires=-1" + "; path=/; ";    
    //create a new cookie
    document.cookie = c_name + "=" + escape(c_size) + "; expires=" + exdate.toGMTString() + "; path=/; ";

    F_Font_ApplyStyle(c_size);
}

//Get the value of the cookie
function F_Font_GetCookie(c_name) {
    var strCookieVal = null;
    var arCookieHolder; // array to hold all the cookies
    var arCookie; // array to hold the cookie pieces

    if (document.cookie.length > 0) {
        arCookieHolder = document.cookie.split(";");

        if (arCookieHolder.length > 0) {
            for (strCookieNames in arCookieHolder) {
                arCookie = arCookieHolder[strCookieNames].toString().split("=");
                if (trim(arCookie[0]) == c_name) strCookieVal = arCookie[1];
                break;
            }
        }
    }

    return strCookieVal;
}

//Apply the body style based on the cookie's value received
function F_Font_ApplyStyle(strName) {

    switch (strName.toLowerCase()) {
        case "normal":
            document.body.style.fontSize = "70%";
            break;
        case "large":
            document.body.style.fontSize = "80%";
            break;
        case "larger":
            document.body.style.fontSize = "90%";
            break;
    }
}

//---------------------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------------

//---------------------------------------------------------------------------------------------------------------------------------
//-- remove white spaces - Trim
//---------------------------------------------------------------------------------------------------------------------------------

function trim(input) {
    return input.replace(/^\s+|\s+$/g, "");
}

//---------------------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------------

//---------------------------------------------------------------------------------------------------------------------------------
//-- Fix Height for Text Area
//---------------------------------------------------------------------------------------------------------------------------------

function JS_Utils_FixHeight ( obj )
{
    if (navigator.userAgent.indexOf('Firefox') != -1 || navigator.userAgent.indexOf('Chrome') != -1) 
    {
        obj.style.height = '78px';
        obj.style.height = (obj.scrollHeight + 2) + 'px';
    }
    else if (navigator.userAgent.indexOf('MSIE') != -1)
    { 
        obj.style.height = (obj.scrollHeight + 2) + 'px';
        if ((obj.scrollHeight + 20) < 80) {
            obj.style.height = '80px';
        }
    }
}

//---------------------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------------




