//  Allows to show/collapse any block element given its #id
//  Usage: setup a checkbox and call this function with onclick event
//  ex: <input type="checkbox" name="foo" id="foo" onclick="collapseElement(this.checked,'id_of_block_to_collapse')" />
function collapseElement(display,elementId)
{
    var blockToCollapse = document.getElementById(elementId);
    if (display){
        blockToCollapse.style.display = 'block';
    } else {
        blockToCollapse.style.display = 'none';
    }
}

//  Allows to highlight a row when hovering it with mouse
//  Needs every row to have a "back..." class name
function switchRowColorOnHover() {
	var table = document.getElementsByTagName("table");
    for (var i=0; i<table.length; i++) {
        var row = table[i].getElementsByTagName("tr");
        for (var j=0; j<row.length; j++) {
            row[j].onmouseover=function() {
                if (this.className.search(new RegExp("back"))>=0) {
                    this.className+=" backHighlight";
                }

            }
            row[j].onmouseout=function() {
                this.className=this.className.replace(new RegExp(" backHighlight\\b"), "");
            }
        }
    }
}

function lockButtons(whichform)
{
    ua = new String(navigator.userAgent);
    if (ua.match(/IE/g)) {
        for (i=1; i<whichform.elements.length; i++) {
            if ((whichform.elements[i].type == 'submit') || (whichform.elements[i].type == 'button'))
                whichform.elements[i].disabled = true;
        }
    }
    whichform.submit();
}

function openWindow()
{
    var newWin = null;
//	alert(openWindow.arguments[0]);
//	alert(openWindow.arguments[1]);
//	alert(openWindow.arguments[2]);
//	alert(openWindow.arguments[3]);


    var url = openWindow.arguments[0];
    var nArgs = openWindow.arguments.length;
    var width = openWindow.arguments[1];
    var height = openWindow.arguments[2];
    var displayState = openWindow.arguments[3];
    

    if(height == '')
    {
        height = screen.height-250;
//        alert('height='+height);
    }
    if(width == '')
    {
        width = screen.width-150;
//        alert('height='+height);
    }
    
    if(displayState == undefined)
    {
		displayState = "toolbar=no,width=" + width + ",height=" + height + ",directories=no,status=no,scrollbars=yes,resizable=yes,menubar=no"
	}
	if(displayState == 'default')
	{
		displayState = "toolbar=yes,directories=yes,status=yes,scrollbars=yes,resizable=yes,menubar=yes,location=yes,personalbar=yes";
	}

    //  if dynamic window size args are passed
    if (nArgs > 1)
    {
//        alert('more than 2 args');
//        alert('display state ='+displayState);
        newWin =  window.open ("","newWindow",displayState);
    }
    else
    {
        newWin =  window.open ("","newWindow","toolbar=no,width=" + SGL_JS_WINWIDTH + ",height=" + SGL_JS_WINHEIGHT + ",directories=no,status=no,scrollbars=yes,resizable=yes,menubar=no");
    }
    newWin.location.href = url;
}

function confirmSubmit(item, formName)
{
    var evalFormName = eval('document.' + formName)
    var flag = false
    for (var count = 0; count < evalFormName.elements.length; count++) {
        var tipo = evalFormName.elements[count].type
        if (tipo == 'checkbox' && evalFormName.elements[count].checked == true && evalFormName.elements[count].name != '')
            flag = true
    }
    if (flag == false) {
        alert('You must select an element to delete')
        return false
    }
    var agree = confirm("Are you sure you want to delete this " + item + "?");
    if (agree)
        return true;
    else
        return false;
}

function confirmSave(formName)
{
    var evalFormName = eval('document.' + formName)
    var flag = false
    for (var count = 0; count < evalFormName.elements.length; count++) {
        var tipo = evalFormName.elements[count].type
        if (tipo == 'checkbox' && evalFormName.elements[count].checked == true && evalFormName.elements[count].name != '')
            flag = true
    }
    if (flag == false) {
        alert('You must select an element to save')
        return false
    }
}

function confirmSend(formName)
{
    var evalFormName = eval('document.' + formName)
    var flag = false
    for (var count = 0; count < evalFormName.elements.length; count++) {
        var tipo = evalFormName.elements[count].type
        if (tipo == 'checkbox' && evalFormName.elements[count].checked == true && evalFormName.elements[count].name != '')
            flag = true
    }
    if (flag == false) {
        alert('You must select at least one recipient')
        return false
    }
}

function confirmCategoryDelete(item)
{
    var agree = confirm("Are you sure you want to delete this " + item + "?");
    if (agree)
        return true;
    else
        return false;
}

function verifySelectionMade()
{
    var moveForm = document.moveCategory.frmNewCatParentID
    var selectedCat = moveForm.value
    if (selectedCat == '') {
        alert('Please select a new parent category')
        return false;
    } else
        return true;
}

function checkInput(formName, fieldName)
{
    var f = eval('document.' + formName + '.' + fieldName)
    if (f.value == '') {
        alert('Please enter a value in the field before submitting');
        return false;
    } else
        return true;
}

function getSelectedValue(selectObj)
{
//    alert('index = ' + selectObj.selectedIndex);
//    alert('val = ' + selectObj.options[selectObj.selectedIndex].value);
    return (selectObj.options[selectObj.selectedIndex].value);
}


function toggleDisplay(myElement)
{
	boxElement = document.getElementById(myElement);

	if (boxElement.style.display == 'none') {
		boxElement.style.display = 'block';
	} else {
    	// ... otherwise collapse box
		boxElement.style.display = 'none';
	}
}

function confirmCustom(alertText, confirmText, formName)
{
    var evalFormName = eval('document.' + formName)
    var flag = false
    for (var count = 0; count < evalFormName.elements.length; count++) {
        var tipo = evalFormName.elements[count].type
        if (tipo == 'checkbox' && evalFormName.elements[count].checked == true && evalFormName.elements[count].name != '')
            flag = true
    }
    if (flag == false) {
        alert(alertText)
        return false
    }
    var agree = confirm(confirmText);
    if (agree)
        return true;
    else
        return false;
}

//  for block manager

var oldDate;
oldDate = new Array();

function time_select_reset(prefix, changeBack) {
    //  TODO: Rewrite this whole function (time_select_reset()) when adminGui is implemented.
    function setEmpty(id) {
        if (dateSelector = document.getElementById(id)) {
            oldDate = dateSelector.value;
            dateSelectorToShow = document.getElementById("frmExpiryDateToShow");
            oldDateToShow = dateSelectorToShow.innerHTML;
            if (dateSelector.value != ''){
                //alert(dateSelector.value);
                dateSelector.value = '';
                dateSelectorToShow.innerHTML = '';
            }
        }
    }

    function setActive(id) {
        if (dateSelector = document.getElementById(id)) {
            dateSelector.value = oldDate;
            dateSelectorToShow.innerHTML = oldDateToShow;
        }

    }

    if (document.getElementById(prefix+'NoExpire').checked) {
        setEmpty('frmExpiryDate');
    } else {
        if (changeBack == true) {
            setActive('frmExpiryDate');
        }
    }
}

function insertFlashHeader()
{
	var html = '';

    html += '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="287" height="60">';
    html += '<param name="movie" value="'+SGL_JS_WEBROOT+'/themes/'+SGL_JS_THEME+'/flash/top_fill.swf" />';
    html += '<param name="quality" value="high" />';
    html += '<param name="wmode" value="transparent">';
    html += '<embed src="'+SGL_JS_WEBROOT+'/themes/'+SGL_JS_THEME+'/flash/top_fill.swf" quality="high" wmode="transparent" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="287" height="60"></embed>';
    html += '</object>';
    return html;
}

// Email displayed dynamically so not pattern readable in page.
function secureEmail ( name, domain, tld, region, label)
{
    var theString = "<a href=\"mailto:";
			
    theString += name;
    theString += "@";
    theString += domain;
    theString += ".";
    theString += tld;
    theString += ".";
    theString += region;
    theString += "\">";
    theString += label;
    theString += "</a>";
	 document.write(theString);
}

// For hover info boxes
function ShowPop(id)
{
   $elem = document.getElementById(id);
   $elem.style.width = "200px";
   $elem.style.visibility = "visible";
}
function HidePop(id)
{
   $elem = document.getElementById(id);
   $elem.style.visibility = "hidden";
   $elem.style.width = "20px";
}


/***************** ROUNDED CORNERS *************************/
function roundedCorners()
{
	var nArgs = roundedCorners.arguments.length;
//	alert("nArgs.length = "+nArgs);
	
	
	/*
	The new 'validTags' setting is optional and allows
	you to specify other HTML elements that curvyCorners
	can attempt to round.
	
	The value is comma separated list of html elements
	in lowercase.
	
	validTags: ["div", "form"]
	
	The above example would enable curvyCorners on FORM elements.
	*/
	
	settingsHeader = {
	  tl: { radius: 10 },
	  tr: { radius: 10 },
	  bl: false,
	  br: false,
	  antiAlias: true,
	  autoPad: true,
	  validTags: ["div","h2"]
	}
	
	settingsBody = {
	  tl: false,
	  tr: false,
	  bl: { radius: 10 },
	  br: { radius: 10 },
	  antiAlias: true,
	  autoPad: true,
	  validTags: ["div"]
	}
	
	/*
	Usage:
	
	newCornersObj = new curvyCorners(settingsObj, classNameStr);
	newCornersObj = new curvyCorners(settingsObj, divObj1[, divObj2[, divObj3[, . . . [, divObjN]]]]);
	*/

	var cornerArray = new Array(nArgs);
	for (var i=0; i<nArgs; i++)
	{
//alert (roundedCorners.arguments[i]);
		headerBoxObject = new curvyCorners(settingsHeader, roundedCorners.arguments[i]);
		headerBoxObject.applyCornersToAll();
		cornerArray[i] = headerBoxObject;
	}
	
	var bodyBoxObject = new curvyCorners(settingsBody, "boxBody");
	bodyBoxObject.applyCornersToAll();

	// automatically add rounding for block content
	//var bodyBoxObject = new curvyCorners(settingsBody, "blockContent");
	//bodyBoxObject.applyCornersToAll();
	
}

/***************** TGSU *************************/

// Branch Selector - Set action and submit
function branchSelector()
{
//	alert('doing branchSelector');
	branchFrm = document.getElementById('frmBranchSelector');
	s_nameObj = document.getElementById('bidname');
//	alert('s_nameObj.name = ' + s_nameObj.name);
	optionsLength = s_nameObj.options.length;
//	alert('optionsLength = ' + optionsLength);
	
	s_name = getSelectedValue(s_nameObj);
//	alert('here...');
//	alert(s_name);

	branchFrm.action = branchFrm.action + s_name;
//	alert(branchFrm.action);
	window.location = branchFrm.action;
//	branchFrm.submit();
}

/***************** XINHA *************************/

//Gather all element id's with class of 'wysiwyg' and return array.
function getEditorIDs()
{
	idArray = new Array();
	k = 0;
	
	numForms = document.forms.length;
	
	for(var i=0;i<numForms;i++)
	{
		numElements = document.forms[i].elements.length;
		for(var j=0;j<numElements;j++)
		{
			elementType = document.forms[i].elements[j].type;
			if(elementType == 'textarea')
			{
				elementID = document.forms[i].elements[j].id;
				elementObj = document.getElementById(elementID);
				if(elementObj.className == 'wysiwyg')
				{
					idArray[k] = elementObj.id;
					k++;
				}
			}
		}
	}
	return idArray;
}



// Main TGSU Flash
function insertJoinBenefitsHeader()
{
	var html = '';

    html += '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="510" height="200">';
    html += '<param name="movie" value="'+SGL_JS_WEBROOT+'/themes/'+SGL_JS_THEME+'/flash/why-join.swf" />';
    html += '<param name="quality" value="high" />';
    html += '<param name="wmode" value="transparent">';
    html += '<embed src="'+SGL_JS_WEBROOT+'/themes/'+SGL_JS_THEME+'/flash/why-join.swf" quality="high" wmode="transparent" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="510" height="200"></embed>';
    html += '</object>';
    return html;
}

// TGSU toggle info block expand/collapse
function toggleDisplay(linkID,blockID)
{
	var theLink = document.getElementById(linkID);
	var theBlock = document.getElementById(blockID);
	if (theBlock.style.display == 'none')
	{
		theBlock.style.display = 'block';
		theLink.innerHTML = "Hide...";
	}
	else
	{
		theBlock.style.display = 'none';
		theLink.innerHTML = "Show...";
	}
	return false;
}

