//	Author:				Nyco Agung
//	Email:				nycoagung@starkcreations.com.au
//	Date:				20 October 2008
//	Copyright:			2008 - Nyco Agung - Stark Creations
//	Terms:				This file is not to be modified/reproduced in anyway without a written consent

<!-- FUNCTION TO CHECK PRICE FROM AND TO -->
function jfunc_price_from_to_check(var_from, var_to){
	var var_price_from = document.getElementById(var_from);
	var var_price_to = document.getElementById(var_to);
	
	if(parseFloat(var_price_from.value) > parseFloat(var_price_to.value)){
		var w = var_price_from.selectedIndex;
  		var_price_to.selectedIndex = w;
 		//alert('Price from should be lower than price to');		
	}
}


<!-- JAVASCRIPT TO ROLL IN TR BG -->
function jfunc_roll_tr_in(thisItem) { 
	thisItem.style.background="#f0f0f0";
} 
function jfunc_roll_tr_out(thisItem) { 
	thisItem.style.background=""; 
} 

<!-- FUNCTION TO LIMIT TEXT BOX -->
function jfunc_limit_textarea(limitField, limitCount, limitNum) {
	if (limitField.value.length > limitNum) {
		limitField.value = limitField.value.substring(0, limitNum);
	} else {
		limitCount.innerHTML = limitNum - limitField.value.length;
	}
}


<!-- FUNCTION TO WRITE POPUP CONFIRM --?>
function jfunc_popup_confirm(var_question, var_yes_address, var_no_address){
	var return_value = confirm(var_question);
	
	if(return_value == true){
		if(var_yes_address != ''){
			document.location = var_yes_address;	
		}else{
			document.location = 'index.php';	
		}
	}else{
		if(var_no_address != ''){
			document.location = var_no_address;
		}else{
			document.location = 'index.php';	
		}
	}
}

<!-- FUNCTION TO SHOW DIV CONTENTS -->
function jfunc_show_tabs(){
	var var_tabs = jfunc_show_tabs.arguments;
	var var_tabs_count = var_tabs.length;
	var var_tabs_selected = var_tabs[0];
	
	for(i = 0; i < var_tabs_count; i++){
		if(var_tabs[i] == var_tabs_selected){
			document.getElementById(var_tabs[i]).style.display = 'block';
		}else{
			document.getElementById(var_tabs[i]).style.display = 'none';
		}
	}		
}

<!-- FUNCTION TO CHANGE CLASS FOR TABS -->
function jfunc_hightlight_tab(var_tab){
	var linkList = document.getElementById("action_tabs_list").getElementsByTagName("a");
		for (i = 0; i < linkList.length; i++) {
			linkList[i].className = "";
		}
	var_tab.className = "current";
}

<!-- FUNCTION TO CHANGE TAB CLASS -->
function jfunc_change_tab(){
	var var_tabs = jfunc_change_tab.arguments;
	var var_tabs_count = var_tabs.length;
	var var_tabs_selected = var_tabs[0];
	
	for(i = 0; i < var_tabs_count; i++){
		document.getElementById(var_tabs[i]).className = "";
	}
	document.getElementById(var_tabs[0]).className = "current";
}

<!-- FUNCTION TO VALIDATE FORM -->
function jfunc_validate_form(){
	var error_message = '';
	var argv = jfunc_validate_form.arguments;
	var argv_count = argv.length;
	var thisform = argv[0];
	var thisurl = argv[1];
	var thisdiv = argv[2];
	
	for(var i = 3; i < argv_count; i+=3){
		if(document.getElementById(argv[i]).value == ""){
			error_message += '- '+document.getElementById(argv[i]).title+' is required\n';	
		
		}else{
			if(argv[i+1] == 'isSame' && document.getElementById(argv[i]).value != document.getElementById(argv[i+2]).value){
				error_message='- '+document.getElementById(argv[i]).title + " must be the same as "+document.getElementById(argv[i+2]).title+"\n";
			}else if(argv[i+1] == 'isEmail'){
				email_contain = document.getElementById(argv[i]).value.indexOf('@');
				if(email_contain < 1 || email_contain == ((document.getElementById(argv[i]).value.length) - 1)){
					error_message='- '+document.getElementById(argv[i]).title + " must contain an email address\n";
				}
				
			}else if(argv[i+1] == 'isNum' && isNaN(document.getElementById(argv[i]).value)){
				error_message='- '+document.getElementById(argv[i]).title + " must contain a number\n";
			}
		}
	}
	
	if(error_message != ""){
		alert(error_message);
		return false;
	}else{
		jfunc_submitform(thisform, thisdiv, thisurl);	
	}
}

<!-- FUNCTION TO VALIDATE FIELDS -->
function jfunc_validate_fields(){
	var error_message = '';
	var argv = jfunc_validate_fields.arguments;
	var argv_count = argv.length;
	var thispagefrm = document.forms[argv[0]];
	var thisbutton = document.getElementById(argv[1]);
	for(var i = 2; i < argv_count; i+=3){
		
		if(document.getElementById(argv[i]).value == ""){
			error_message += '- '+document.getElementById(argv[i]).title+' is required\n';	
		
		}else{
			if(argv[i+1] == 'isSame' && document.getElementById(argv[i]).value != document.getElementById(argv[i+2]).value){
				error_message='- '+document.getElementById(argv[i]).title + " must be the same as "+document.getElementById(argv[i+2]).title+"\n";
			}else if(argv[i+1] == 'isEmail'){
				email_contain = document.getElementById(argv[i]).value.indexOf('@');
				if(email_contain < 1 || email_contain == ((document.getElementById(argv[i]).value.length) - 1)){
					error_message='- '+document.getElementById(argv[i]).title + " must contain an email address\n";
				}
				
			}else if(argv[i+1] == 'isNum' && isNaN(document.getElementById(argv[i]).value)){
				error_message='- '+document.getElementById(argv[i]).title + " must contain a number\n";
			}
		}
	}
	
	if(error_message != ""){
		alert(error_message);
		return false;
	}else{
		thisbutton.disabled = true; 
		thisbutton.value = "Processing..."; 
		thispagefrm.submit();	
	}
}

<!-- FUNCTION TO DYNAMICALLY CREATE ITEMS -->
function jfunc_more_fields(var_field, var_write)
{
	var counter = 0;
	counter++;
	var newFields = document.getElementById(var_field).cloneNode(true);
	newFields.id = '';
	newFields.style.display = 'block';
	var newField = newFields.childNodes;
	for (var i=0;i<newField.length;i++)
	{
		var theName = newField[i].name
		if (theName)
			newField[i].name = theName + counter;
	}
	var insertHere = document.getElementById(var_write);
	insertHere.parentNode.insertBefore(newFields,insertHere);
}

function addEvent(elm, evType, fn, useCapture)
{
if(elm.addEventListener)
  {
  elm.addEventListener(evType, fn, useCapture);
  return true;
  }
else if (elm.attachEvent)
  {
  var r = elm.attachEvent('on' + evType, fn);
  return r;
  }
else
  {
  elm['on' + evType] = fn;
  }
}

function jfunc_limit_tablecreation(var_thisitem, var_field, var_action, var_limit, var_add_field, var_div_write){
	var_limit = var_limit + 1;
	var_hidden_field = document.getElementById(var_field);
	var_hidden_field_value = parseFloat(document.getElementById(var_field).value);
	if(var_action == "add"){
		if(var_hidden_field_value >= var_limit){
			alert('A maximum of '+var_limit+' items can be added at once.');
			return false;
		}else{
			var_hidden_field.value = var_hidden_field_value+1;
			jfunc_more_fields(var_add_field, var_div_write);
		}
	}else if(var_action == "remove"){
		if(var_hidden_field_value - 1 <=0){
			return false;
		}else{
			var_hidden_field.value = var_hidden_field_value-1;
			var_thisitem.parentNode.parentNode.parentNode.parentNode.parentNode.removeChild(var_thisitem.parentNode.parentNode.parentNode.parentNode);
		}
	}	
}

<!-- FUNCTION TO SUBMIT ACTION FORM -->
function jfunc_submit_action_form(var_form_used, var_action){
	if(document.forms[var_form_used].boxchecked.value==0){
		alert('Please make a selection from the list to '+var_action);
	}else{
		jfunc_set_next_action(var_form_used, var_action);
	}
}



<!-- FUNCTION TO CHECK ALL CHECKBOXES -->
function jfunc_check_checkbox_all(checkobj, value)
{
	formobj = checkobj.form;
	for (var i = 0; i < formobj.elements.length; i++)
	{
		elm = formobj.elements[i];
		if (elm.type == "checkbox" && elm.id == value)
		{
			elm.checked = checkobj.checked;
		}
	}
	jfunc_check_checkbox_checked(checkobj, value)
}

<!-- FUNCTION TO CHECK IF CHECK BOXES ARE CHECKED -->
function jfunc_check_checkbox_checked(checkobj, value){
	formobj = checkobj.form;
	var box_checked = 0;
	for( var i = 0; i < formobj.elements.length; i++){
		elm = formobj.elements[i];
		if (elm.type == "checkbox" && elm.id == value && elm.checked){
			box_checked = box_checked + 1;
		}else if(elm.type == "radio" && elm.id == value && elm.checked){
			box_checked = box_checked + 1;
		}
	}

	if(box_checked > 0){
		formobj.boxchecked.value = 1;	
	}else{
		formobj.boxchecked.value = 0;	
	}
}

<!-- FUNCTION TO CLEAR FORM -->
function clearForm(formIdent) { 
  if(formIdent == ""){ return false; }
  var formname = formIdent;
  var inp = document.forms[formIdent].getElementsByTagName('input');
	for(var i = 0; i < inp.length; i++) {
		if(inp[i].type == 'text') {
			inp[i].value = '';
		}
	}
  var inp = document.forms[formIdent].getElementsByTagName('select');
	for(var i = 0; i < inp.length; i++) {
		inp[i].selectedIndex=0
	}
  //document.listsearch.submit();

}

//FUNCTION TO SUBMIT FILES IN AJAX
function startCallback(var_div) {
	document.getElementById(var_div).innerHTML="<div align=\"center\"><img src=\"../images/loading_content.gif\" alt=\"Loading\"></div>";	
	return true;
}

function completeCallback(response) {
	// make something useful after (onComplete)
	document.getElementById('div_image').innerHTML = response;
}
AIM = {

    frame : function(c) {

        var n = 'f' + Math.floor(Math.random() * 99999);
        var d = document.createElement('DIV');
        d.innerHTML = '<iframe style="display:none" src="about:blank" id="'+n+'" name="'+n+'" onload="AIM.loaded(\''+n+'\')"></iframe>';
        document.body.appendChild(d);

        var i = document.getElementById(n);
        if (c && typeof(c.onComplete) == 'function') {
            i.onComplete = c.onComplete;
        }

        return n;
    },

    form : function(f, name) {
        f.setAttribute('target', name);
    },

    submit : function(f, c) {
        AIM.form(f, AIM.frame(c));
        if (c && typeof(c.onStart) == 'function') {
            return c.onStart();
        } else {
            return true;
        }
    },

    loaded : function(id) {
        var i = document.getElementById(id);
        if (i.contentDocument) {
            var d = i.contentDocument;
        } else if (i.contentWindow) {
            var d = i.contentWindow.document;
        } else {
            var d = window.frames[id].document;
        }
        if (d.location.href == "about:blank") {
            return;
        }

        if (typeof(i.onComplete) == 'function') {
            i.onComplete(d.body.innerHTML);
        }
    }

}


//FUNCTION TO SUBMIT FORM IN AJAX
function jfunc_submitform(){
	
	var error_message = '';
	var argv = jfunc_submitform.arguments;
	var argv_count = argv.length;
	
	var var_form = argv[0];
	var var_div = argv[1];
	var var_targetfile = argv[2];
	var var_form_toclear = argv[3];
	
	var thispagefrm = document.forms[var_form];
	
	for(var i = 4; i < argv_count; i+=3){
		
		if(document.getElementById(argv[i]).value == ""){
			error_message += '- '+document.getElementById(argv[i]).title+' is required\n';	
		
		}else{
			if(argv[i+1] == 'isSame' && document.getElementById(argv[i]).value != document.getElementById(argv[i+2]).value){
				error_message='- '+document.getElementById(argv[i]).title + " must be the same as "+document.getElementById(argv[i+2]).title+"\n";
			}else if(argv[i+1] == 'isEmail'){
				email_contain = document.getElementById(argv[i]).value.indexOf('@');
				if(email_contain < 1 || email_contain == ((document.getElementById(argv[i]).value.length) - 1)){
					error_message='- '+document.getElementById(argv[i]).title + " must contain an email address\n";
				}
				
			}else if(argv[i+1] == 'isNum' && isNaN(document.getElementById(argv[i]).value)){
				error_message='- '+document.getElementById(argv[i]).title + " must contain a number\n";
			}
		}
	}
	
	if(error_message != ""){
		alert(error_message);
		return false;
	}else{
		var params = Form.serialize($(var_form));
		new Ajax.Updater(var_div, var_targetfile, {asynchronous:true, parameters:params});
		document.getElementById(var_div).innerHTML="<div align=\"center\"><img src=\"../images/loading_content.gif\" alt=\"Loading\"></div>";
		clearForm(var_form_toclear);
	}
	
	
}

//FUNCTION TO LOAD PAGE IN AJAX
var bustcachevar=1 //bust potential caching of external pages after initial request? (1=yes, 0=no)
var loadedobjects=""
var rootdomain="http://"+window.location.hostname
var bustcacheparameter=""

function jfunc_showpage(url, containerid){
	
	var page_request = false
	if (window.XMLHttpRequest) // if Mozilla, Safari etc
		page_request = new XMLHttpRequest()
	else if (window.ActiveXObject){ // if IE
		try {
			page_request = new ActiveXObject("Msxml2.XMLHTTP")
		} 
		catch (e){
			try{
				page_request = new ActiveXObject("Microsoft.XMLHTTP")
			}
		catch (e){}
		}
	}
	else
		return false
		document.getElementById(containerid).innerHTML="<div align=\"center\"><img src=\"../images/loading_content.gif\" alt=\"Loading\"></div>";
		page_request.onreadystatechange=function(){
		loadpage(page_request, containerid)
	}
	
	if (bustcachevar) //if bust caching of external page
		bustcacheparameter=(url.indexOf("?")!=-1)? "&"+new Date().getTime() : "?"+new Date().getTime()
		page_request.open('GET', url+bustcacheparameter, true)
		page_request.send(null)
	}

function loadpage(page_request, containerid){
	if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1))
	document.getElementById(containerid).innerHTML=page_request.responseText
}

function loadobjs(){
	if (!document.getElementById)
		return
		for (i=0; i<arguments.length; i++){
			var file=arguments[i]
			var fileref=""
			if (loadedobjects.indexOf(file)==-1){ //Check to see if this object has not already been added to page before proceeding
				if (file.indexOf(".js")!=-1){ //If object is a js file
					fileref=document.createElement('script')
					fileref.setAttribute("type","text/javascript");
					fileref.setAttribute("src", file);
				}
			else if (file.indexOf(".css")!=-1){ //If object is a css file
				fileref=document.createElement("link")
				fileref.setAttribute("rel", "stylesheet");
				fileref.setAttribute("type", "text/css");
				fileref.setAttribute("href", file);
			}
		}
		if (fileref!=""){
			document.getElementsByTagName("head").item(0).appendChild(fileref)
			loadedobjects+=file+" " //Remember this object as being already added to page
		}
	}
}

<!-- FUNCTION TO REMOVE IE BOX ON CHECKBOX -->
function addEvent(elm, evType, fn, useCapture){
	if(elm.addEventListener){
		elm.addEventListener(evType, fn, useCapture);
		return true;
	}else if (elm.attachEvent){
		var r = elm.attachEvent('on' + evType, fn);
		return r;
	}else{
		elm['on' + evType] = fn;
	}
}
function jfunc_remove_ie_checkbox_border(){
	var el = document.getElementsByTagName("input");
	for (i=0;i<el.length;i++){
		var type = el[i].getAttribute("type");
		if((type=="checkbox")||(type=="radio")){
			el[i].style.border = "none";
		}
	}
}
addEvent(window, 'load', jfunc_remove_ie_checkbox_border, false);