var IMG_CHECKBOX_CHECKED = 'checkbox_on.gif';
var IMG_CHECKBOX_UNCHECKED = 'checkbox_off.gif';
var systemMessageCleaner;

function changeImage(imageName,path){
   document.images[imageName].src = path;
}

function changeBtnImage(btnId,path){
   var elem = document.getElementById(btnId);
   elem.setAttribute("src",path);
}


function inputFieldOnSelect(inputFieldID) {
	var inputFieldTextBox = document.getElementById(inputFieldID);
	var inputField = inputFieldTextBox.parentNode.parentNode;
	
	replaceElementClassName(inputField, 'input_field_off', 'input_field_on');
}


function checkboxTurn(checkboxID) {
	var elem  = document.getElementById(checkboxID);

	if (elem) {
		if (elem.getAttribute('isChecked')=='false')
			checkboxTurnOn(checkboxID);
		else
			checkboxTurnOff(checkboxID);
	}
}

function checkboxTurnOn(checkboxID) {
	var elem = document.getElementById(checkboxID);
	var checkboximage = document.getElementById(checkboxID + 'Img');
	var checkboxValue = document.getElementById(checkboxID + 'Value');

	elem.setAttribute('isChecked', 'true');
	checkboximage.setAttribute('src', '/resources/images/' + IMG_CHECKBOX_CHECKED);
	checkboxValue.checked = true;
}

/**
 * checkboxTurnOff
 * @param checkboxID
 */
function checkboxTurnOff(checkboxID) {
	var elem = document.getElementById(checkboxID);
	var checkboximage = document.getElementById(checkboxID + 'Img');
	var checkboxValue = document.getElementById(checkboxID + 'Value');

	elem.setAttribute('isChecked', 'false');
	checkboximage.setAttribute('src', '/resources/images/' + IMG_CHECKBOX_UNCHECKED);
	checkboxValue.checked = false;
}

/**
 * @param elem The element to be searched for replacement.
 * @param replaceClass The classed to be replaced.
 * @param withClass The new class name.
 * @return The ammount of replacements
 */
function replaceElementClassName(elem, replaceClass, withClass) {
	var count = 0;
	
	if (elem) {
		var classes = elem.className.split(' ');
		
		for (var i=0; i<classes.length; i++) {
			if (classes[i]==replaceClass) {
				classes[i] = withClass;
				
				count++;
			}
		}
		
		elem.className = classes.join(' ');
	}
	
	return count;
}

function elementHasClassName(elem, className) {
	var hasIt = false;

    if (elem) {
		var classes = elem.className.split(' ');
		
		for (var i=0; i<classes.length; i++) {
			if (classes[i] == className) {
				hasIt = true;
				
				break;
			}
		}
	}
	
	return hasIt;
}

function updateWidgetReferences(idWidget,idAccount) {
	var uri = "/widget"+ idWidget +"/"+ idAccount;
	var url = "<a href=\"http://www.wetutor.com/profiles/" + idAccount + "\" title=\"WeTutor Tutor\" target=_TOP><img src=\"http://www.wetutor.com" + uri + "\" border=0 alt=\"WeTutor Tutor\"></a>";
	
	$("widgetCode").value = url;
	
	if (idWidget == 5)
  		$('widgetImage').innerHTML = "<img src=\"" + uri + "\"/>";
  	
  	var pconf = { 
	    UIConfig: '<config><body><background corner-roundness="4" background-color="#FFFFFF" /></body></config>',
		defaultContent: 'widgetCode'
	};
	
    Wildfire.divWildfirePost.applyConfig(pconf);
}

/**
 * Function that checks the radio button being clicked on
 * and unchecks the other ones in the same group.
 */
function clickOnRadio(radioClicked,idWidget,idAccount) {
	var allRadios = document.getElementsByTagName('input');
	
	for (var i=0; i<allRadios.length; i++) 
	{
		var element = allRadios[i];
		
		if (element.attributes['type'].nodeValue == 'radio')
		{
			if (element == radioClicked)
				radioClicked.checked = true;
			else
				allRadios[i].checked = false;
		}
	}
	
	updateWidgetReferences(idWidget,idAccount);
	
}

function copy(inElement) {
	var element = $(inElement);
	
	if (inElement.createTextRange) 
	{
		var range = inElement.createTextRange();
		
		if (range && BodyLoaded == 1)
			range.execCommand('Copy');
	} 
	else 
	{
		var flashcopier = 'flashcopier';
		
		if (!$('flashcopier')) 
		{
			var divholder = document.createElement('div');
			divholder.id = flashcopier;
			document.body.appendChild(divholder);
		}
		$('flashcopier').innerHTML = '';
		var divinfo = '<embed src="/resources/_clipboard.swf" FlashVars="clipboard='+encodeURIComponent(element.value)+'" width="0" height="0" type="application/x-shockwave-flash"></embed>';
		$('flashcopier').innerHTML = divinfo;
	}
	
	displayMessage("Copied!");
}

function setDropDownValueForWidgets(elemID, valueID, value, idAccount)
{
    document.getElementById("account.shape").value = value;
    var uri = "/widget" + value + "/" + idAccount;
	var url = "<a href=\"http://www.rogomo.com/profiles/" + idAccount + "\" title=\"Rogomo seller info\" target=_TOP><img src=\"http://www.rogomo.com" + uri + "\" border=0 alt=\"Rogomo seller info\"></a>";
	
	document.getElementById("widgetCode").value = url;
  	document.getElementById('widgetImage').innerHTML = "<img src=\"" + uri + "\"/>";
	
	if (value==1)
		$('widgetImage').style.marginLeft="70px";
	else
		$('widgetImage').style.marginLeft="10px";
    //setDropDownValue(elemID, valueID, text, value);
    
	var pconf = { 
	    UIConfig: '<config><body><background corner-roundness="4" background-color="#FFFFFF" /></body></config>',
		defaultContent: 'widgetCode'
	};
	
    Wildfire.divWildfirePost.applyConfig(pconf);
}

function setDropDownValue(elemID, valueID, text, value) {
	var elem = document.getElementById(elemID);
		
	if (elem) {

		var elemText = document.getElementById(elemID + 'Text');
		
		if (elemText)
			elemText.value = text;

		var elemValue = document.getElementById(valueID);
		
		if (elemValue)
			elemValue.value = value;
		
		replaceElementClassName(elem, 'drop_down_on', 'drop_down_off');
	}
}

function setDropDownValue2(elemID, text, value) 
	{
		var elem = document.getElementById(elemID + 'Text');
			
		if (elem) {

			var elemText = document.getElementById(elemID );
			
			if (elemText)
				elemText.value = text;

			var elemValue = document.getElementById(elemID + 'Value');
			
			if (elemValue)
				elemValue.value = value;
			
			replaceElementClassName(elem, 'drop_down_on', 'drop_down_off');
		}

	}

		

function closeDiv (elName) {
	var theElemenet = document.getElementById(elName);
	if (theElemenet) {
		theElemenet.style.display = "none";
	}
}

function showResultDiv(elementName){
    var div = document.getElementById(elementName);
    if (div) {
        div.style.display = "block";
    }
}

function onloadpageSetTimeOut() {
    //four hours by now
    window.setTimeout('onSessionExpired()', 1000*60*60*4);
}

function onSessionExpired() {
    var url = "/logout.htm?logoutType=1";
    window.location = url;
}



function openDropDown(element) {
    var count = replaceElementClassName(element, 'drop_down_off', 'drop_down_on');

    if (count==0)
        replaceElementClassName(element, 'drop_down_on', 'drop_down_off');

    $(element.id + 'Text').focus();
}


/*
 *	Scrolls browser view are to the top, where system messages are displayed.
 */
function scrollTop(){

	if (typeof document.documentElement.scrollTop != 'undefined' && document.documentElement.scrollTop > 0)
		document.documentElement.scrollTop = 0;
 
 	if (typeof document.body.scrollTop != 'undefined')
		document.body.scrollTop = 0;

}

function displayMessage(message) {
	
	if (message.match('Error'))
		printMessage(message, "#B82D18");
	else
		printMessage(message, "#006E3A");
	
}

function printMessage(message, backgroundColor) {
	message = "<span style='text-align:center;color:#FFFFFF;font-weight:bold;font-family:Verdana,Arial,Helvetica,sans-serif;font-size:70%;padding-left: 10px;padding-right: 10px;'>" + message + "</span>";
	
	scrollTop();
	$('systemMessage').innerHTML = message;
	$('systemMessage').style.backgroundColor = backgroundColor;
	$('systemMessage').style.margin = "0px auto 10px auto";
	
	if(!NiftyCheck()) {
    	return;
	}
	
	Rounded("div#systemMessage","#e6e6e6",backgroundColor);
	clearMessage();
}

var clearSystemMessageTime = 10; //time the system messages are being displayed.
function clearMessage() {
	if (systemMessageCleaner != null) {
		systemMessageCleaner.stop();
	}	
	
    systemMessageCleaner = new PeriodicalExecuter( function(){
		quickClearSystemMessage();
    },clearSystemMessageTime);
}

function quickClearSystemMessage(){
		$('systemMessage').innerHTML = '';
		$('systemMessage').style.margin="0px";
		$('systemMessage').style.backgroundColor="#e6e6e6"; 
}