/**
 * e-Commerce System
 * Copyright (c) 2002-2006 Philip John, All Rights Reserved.
 * Author	: Philip John
 * Version	: 6.0
 *
 * PROPRIETARY/CONFIDENTIAL.  Use is subject to license terms.
 */

/**
 * Launch SpellCheck
 */
function spellCheck(name)
{
	document.getElementById(name).updateHTML();
	speller=window.open(dir+'admins/dsp_SpellCheck.php?textarea='+name,'speller_'+name,'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=600,height=600');
	speller.opener=self;
}

/**
 * Form postback methods
 */

function postback(button,url,vars,vals)
{
	button.setAttribute('action','none');
	form=document.getElementById('postback');
	form.action=dir+"index.php?fuseaction=admin."+url;
	for(var i=0;i<vars.length;i++)
	{
		node=document.createElement('input');
		node.setAttribute('type','hidden');
		node.setAttribute('name',vars[i]);
		node.setAttribute('value',vals[i]);
		form.appendChild(node);
		node=null;
	}
	form.submit();
	form=null;
	return false;
}

function postbackConf(button,url,vars,vals,verb,noun)
{
	button.setAttribute('action','none');
	var answer = confirm("Are you sure you want to "+verb+" this "+noun+"?");
	if(answer)
	{
		form=document.getElementById('postback');
		form.action=dir+"index.php?fuseaction=admin."+url;
		for(var i=0;i<vars.length;i++)
		{
			node=document.createElement('input');
			node.setAttribute('type','hidden');
			node.setAttribute('name',vars[i]);
			node.setAttribute('value',vals[i]);
			form.appendChild(node);
			node=null;
		}
		form.submit();
	}
	form=null;
	return false;
}

function postbackMulti(button,url)
{
	button.setAttribute('action','none');
	form=document.getElementById('postback_multi');
	form.action=dir+"index.php?fuseaction=admin."+url;
	form.submit();
	form=null;
	return false;
}

function changeState(checkbox,vars,count)
{
	for(var i=0;i<vars.length;i++)
		for(var j=0;j<count[i];j++)
			document.getElementById(vars[i]+"_"+j).checked=checkbox.checked;
	checkbox=null;
}

/**
 * Confirmation functions
 */

function confAct(location)
{
	var answer = confirm ("Are you sure?")
	if (answer)
		window.location=location;
}

function formConfAct(form,url,verb,noun)
{
	var answer = confirm("Are you sure you want to "+verb+" this "+noun+"?");
	if(answer)
		form.action=dir+url;
	form=null;
	return answer;
}

function submitConfAct(form,verb,noun)
{
	return answer = confirm("Are you sure you want to "+verb+" this "+noun+"?");
}

function confMove(name,pageid,parentid)
{
	var answer = confirm ("Are you sure you want to move this page to be under "+name+"?")
	if (answer)
	{
		form=opener.document.getElementById('postback');
		form.action=dir+"index.php?fuseaction=admin.movePage&act=move";
		node=opener.document.createElement('input');
		node.setAttribute('type','hidden');
		node.setAttribute('name','pageid');
		node.setAttribute('value',pageid);
		form.appendChild(node);
		node=null;

		node=opener.document.createElement('input');
		node.setAttribute('type','hidden');
		node.setAttribute('name','parentid');
		node.setAttribute('value',parentid);
		form.appendChild(node);
		node=null;

		form.submit();
		form=null;
		window.close();
	}
}

/**
 * Popup callback window functions
 */

function popup_move(pageid,parentid)
{
	var popup=window.open(dir+'index.php?fuseaction=admin.movePage&pageid='+pageid+'&parentid='+parentid,'new','status=no,width=300,height=500,scrollbars=yes');
}

function help()
{
	var popup=window.open(dir+'index.php?fuseaction=admin.help','help','scrollbars=yes,status=no,width=660,height=550');
}

/**
 * Dom based forms
 */

function addFileRow(button)
{
	button.setAttribute('action','none');
	var rowid=files;

	parent_node=document.getElementById('files');

	label_node=document.createElement('label');
	label_node.setAttribute('for','image_'+rowid);
	label_node.innerHTML='Select Image '+(files+1);

	file_node=document.createElement('input');
	file_node.setAttribute('type','file');
	file_node.setAttribute('id','image_'+rowid);
	file_node.setAttribute('name','image[]');

	br_node=document.createElement('br');

	parent_node.appendChild(label_node);
	parent_node.appendChild(file_node);
	parent_node.appendChild(br_node);

	//Cleanup
	br_node=null; file_node=null; label_node=null; parent_node=null; rowid=null; button=null;
	files++;
	return false;
}

/**
 * Caps lock detection
 */

function caps(event,elem)
{
	if(!event)
		event=window.event;
	if(!event)
		return;
	if(event.charCode)
		keypress=event.charCode;
	else if(event.which)
		keypress=event.which;
	else if(event.keyCode)
		keypress=event.keyCode;
	else
		keypress=0;

	var shiftkey=event.shiftKey || (event.modifiers && (event.modifiers & 4));
	if((keypress>64 && keypress<91 && !shiftkey) || (keypress>96 && keypress<123 && shiftkey))
		elem.className='capslock';
	else
		elem.className='';
	event=null;
}

/**
 * Generic functions
 */

function isArray(obj)
{
   if (obj.constructor.toString().indexOf("Array") == -1)
      return false;
   else
      return true;
}

function getElementsByClassName(oElm, strTagName, strClassName){
	var arrElements = (strTagName == "*" && document.all)? document.all :
	oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	strClassName = strClassName.replace(/\-/g, "\\-");
	var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
	var oElement;
	for(var i=0; i<arrElements.length; i++){
		oElement = arrElements[i];
		if(oRegExp.test(oElement.className)){
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements)
}

function trim(str)
{
	while(''+str.charAt(0)==' ')
		str=str.substring(1,str.length);
	while(''+str.charAt(str.length-1)==' ')
		str=str.substring(0,str.length-1);
	return str;
}

/**
 * Validation related functions
 */

function showError(id)
{
	var item=document.getElementById(id+'_error');
	if(item!=null)
	{
		item.style.display='inline';
		item=null;
	}
	else
		alert(id+' is not a valid error display');
}

function hideError(id)
{
	var item=document.getElementById(id+'_error');
	if(item!=null)
	{
		item.style.display='none';
		item=null;
	}
	else
		alert(id+' is not a valid error display');
}

function appendError(text,errordiv)
{
	if(text!='')
	{
		listNode = document.getElementById(errordiv+'_ul');
		itemNode = document.createElement('li');
		itemNode.appendChild(document.createTextNode(text));
		listNode.appendChild(itemNode);
	}
}

function isnum(id)
{
	return (parseInt(document.getElementById(id).value)==document.getElementById(id).value);
}

function required(id)
{
	if(document.getElementById(id).type=='checkbox')
		return document.getElementById(id).checked;
	else if(trim(document.getElementById(id).value)=='')
		return false
	else
		return true
}
