function URLtoURI(url){
	url = url.replace(RegExp("\\\\","g"),"/");
	return encodeURI(url);
}

// AJAX Functions NEXT
var http_request = false;

function ajax(obj,url){ // Object,URL,Parameters,Method,Action,Function Name
	var args = ajax.arguments;
	var parameters = (args.length > 2)? args[2] : '';
	var method = (args.length > 3)? args[3] : "GET";
	var act = (args.length > 4)? args[4] : "html";
	var func = (args.length > 5)? args[5] : "";
	
    var http_request = false;
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
		}
	}else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	if (!http_request) {
		alert('Cannot create XMLHTTP instance');
		return false;
	}

	http_request.onreadystatechange = function(){processStateChange(http_request,obj,act,func)};
	http_request.open(method, url, true);
	http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http_request.setRequestHeader("Content-length", parameters.length);
	http_request.setRequestHeader("Connection", "close");
	http_request.send(parameters);
	return true
}

var ready_state = new Array("uninitialized","loading","doaded","interactive","complete")

function processStateChange(http_request,obj){
	var act = (processStateChange.arguments.length > 2)? processStateChange.arguments[2] : "html";
	var func = (processStateChange.arguments.length > 3)? processStateChange.arguments[3] : "";

	window.status = 'Ajax: '+ready_state[http_request.readyState];
	if(http_request.readyState == 4){ // Complete
		if(http_request.status == 200 || http_request.status == 0){ // OK response
			if(act == "html"){
				obj.innerHTML = http_request.responseText;
			}else if(act == "text"){
				obj.innerText = http_request.responseText;
			}else if(act == "function"){
				eval(func)(http_request.responseText,obj)
			}else if(act == "value"){
				obj.value = http_request.responseText
			}else if(act == "link"){
				if(http_request.responseText == "OK"){
					window.location = func
				}else{
					alert(http_request.responseText)
				}
			}else if(act == "ok"){
				if(http_request.responseText != "OK"){
					alert(http_request.responseText)
				}
			}
			http_request = null
		}else{
			window.status = 'Ajax: problem ' + http_request.statusText + ', status: ' + http_request.status
		}
	}
}
// END AJAX

//COOKIE FUNCTION
function GetCookie(name){
	all = document.cookie.split("; ")
	var allcookies = new Array();
	for(i=0;i<all.length;i++){
		allcookies[i] = all[i].split("=")
		if(name.toLowerCase() == allcookies[i][0].toLowerCase()){
			allcookies[i][1] = unescape(allcookies[i][1])
			return allcookies[i][1]
		}
	}
	return "undefined";
}

function SetCookie(one,two){
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var days = (argc > 2)? argv[2] : 365;
var expires = new Date ();
expires.setTime (expires.getTime() + (24 * 60 * 60 * 1000 * days));
var path = (argc > 3) ? argv[3] : null;
var domain = (argc > 4) ? argv[4] : DomainName();
var secure = (argc > 5) ? argv[5] : false;
document.cookie = one + "=" + escape (two) + ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + ((path == null) ? "" : ("; path=" + path)) + ((domain == null) ? "" : ("; domain=" + domain)) + ((secure == true) ? "; secure" : "");
}

// END COOKIE

function valid_email(email){
	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(email)){
		return true
	}else{
		return false
	}
}

//General Functions
function DomainName(){
	var start = location.hostname.lastIndexOf(".",location.hostname.length-5);
	if(start >= 0){
		dname = location.hostname.substr(start,location.hostname.length-start)
	}else{
		dname = "."+location.hostname
	}
	return dname.toString();
}

//String functions
function InString(ex,str){ //ex = expression looked for, str = string looked in
		var start = 0;
		var res = 0;
		for(i=0;i<str.length;i++){
			if(str.indexOf(ex,i) >= 0){
				res++
				i = str.indexOf(ex,i) + 1
			}else{
				i = str.length
			}
		}
		return res;
}

// Other functions
function preload_image(){
	var args = preload_image.arguments;
	document.imageArray = new Array(args.length);
	for(var i=0; i<args.length; i++){
		document.imageArray[i] = new Image;
		document.imageArray[i].src = args[i];
	}
}

function logout(){
	SetCookie('gresid','',0,'/',window.location.hostname)
	SetCookie('greuid','',0,'/',window.location.hostname)
	window.location = '../magazine';
}

// Select Element Functions
function checked_items(items){
	var boxes = new Array();
	
	if(items.length > 1){
		for(i=0;i<items.length;i++){
			if(items[i].checked == true){
				boxes[boxes.length] = items[i]
			}
		}
	}else if(items.length == 0){
		// Do Nothing
	}else{
		if(items.checked == true){
			boxes[0] = items
		}
	}
	return boxes
}

function select_all(items,sel){
	if(items != undefined){
		if(items.length > 1){
			for(i=0;i<items.length;i++){
				items[i].checked = sel
			}
		}else{
			items.checked = sel
		}
	}
}

function checked_ids(items){
	var ids = "";
	items = checked_items(items)
	
	for(i=0;i<items.length;i++){
		ids += ids==""? items[i].value : ","+items[i].value
	}
	
	return ids;
}

function array_of_items(arr){
	if(arr.length > 1 && !arr.options){
		// Do nothing
	}else if(arr.length == 0 && !arr.options){
		arr = new Array()
	}else{
		arr = new Array(arr)
	}
	
	return arr
}

function make_array(items,aname){
	items = array_of_items(items)
	var args = "";
	
	for(i=0;i<items.length;i++){
		args += args==""? aname+"="+items[i].value : "&"+aname+"="+items[i].value
	}
	
	return args;
}

function checked_array(items,aname){
	var args = "";
	items = checked_items(items)
	
	for(i=0;i<items.length;i++){
		args += args==""? aname+"="+items[i].value : "&"+aname+"="+items[i].value
	}
	
	return args;
}

function addElement(objSelCtrl, strText, strValue, selected){
	var args = addElement.arguments;
	var objOptions = objSelCtrl.options;
	var intOptionLength = (objSelCtrl.options.length <= 0)? 0 : objSelCtrl.options.length //IE for Mac 4.5 sets length to -1 if list is empty
	
	objOptions[intOptionLength] = new Option(strText, strValue);

	var argv = addElement.arguments;
	var argc = addElement.arguments.length;
	if(argc > 3 && argv[3] == true){
		objOptions[intOptionLength].selected = argv[3]
		if(args.length > 4){
			objOptions[intOptionLength].style.color = args[4]
		}
		if(args.length > 5){
			objOptions[intOptionLength].style.background = args[5]
		}
	}
}

function ClearElements(what){var walength = what.options;for(i in walength){what.options[i] = null}}

function ClearSelected(obj){
	for(i=0;i<obj.options.length;i++){
		if(obj.options[i].selected == true){
			obj.options[i] = null
		}
	}
}
// End Select Element options


function make_request(obj,parameters){
	var args = make_request.arguments;
	var func_name = args.length > 2? args[2] : '';
	var func = args.length > 2? 'function' : 'html';
	VitaminXP.Ajax.RequestUrl(obj,"../ajax/admin-functions.php",parameters,"POST",func,func_name)
}

function alert_request(txt){
	if(txt != "OK"){
		alert(txt)
	}
}

function fill_form(txt,frm){
	info = txt.split(",")
	for(i in info){
		arr = info[i].split("=")
		obj = frm.elements[arr[0]].value = arr[1]
	}
}

function get_city_state_by_zipcode(zipcode,frm){
	if(zipcode.length >= 5){
		VitaminXP.Ajax.RequestUrl(frm, up_dir + 'ajax/admin-functions.php','zipcode=city_state&code='+zipcode.substr(0,5),'POST','function','set_city_state')
	}
}

function set_city_state(txt,frm){
	
	info = txt.split(',')
	frm.city.value = info[0]
	frm.state.value = info[1]
}

function string2array(str){
	var arr = str.split("&")
	var new_arr = new Array()
	
	for(i=0;i<arr.length;i++){
		temp = arr[i].split("=")
		new_arr[temp[0]] = temp[1]
	}
	
	return new_arr;
}

function contact_form_valid(frm){
	var err = ''
	
	var name = frm.elements['info[name]'].value
	var email = frm.elements['info[email]'].value
	var subject = frm.elements['info[subject]'].value
	var message = frm.elements['info[message]'].value
	
	err += (name.length < 3)? 'Please check field "From". I think you entered wrong name, or didn\'t enter at all.\n' : ''
	err += (!valid_email(email))? 'Please fix the Email address because it is incorrect\n' : ''
	err += (subject.length < 1)? 'Please enter Subject in "Subject" field.\n' : ''
	err += (message.length < 1)? 'Please enter message before submiting' : ''
	
	if(err == ''){
		return true;
	}else{
		alert(err)
		return false;
	}
}

function validate_settings(frm){
	var err = ''
	
	err += !valid_email(frm.SiteEmail.value)? 'Administrator\'s Email is incorrect.\n' : ''
	err += !valid_email(frm.VisibleEmail.value)? 'Visible Email is incorrect.\n' : ''
	
	if(err == ''){
		return true
	}else{
		alert(err+'Settings will not be updated untill these fields are fixed.')
		return false;
	}
}

function save_site_settings(frm){
	var q = '';
	
	q += '&info[SiteEmail]='+frm.SiteEmail.value
	q += '&info[BusinessName]='+frm.BusinessName.value
	q += '&info[AddressLine1]='+frm.AddressLine1.value
	q += '&info[AddressLine2]='+frm.AddressLine2.value
	q += '&info[City]='+frm.City.value
	q += '&info[State]='+frm.State.value
	q += '&info[ZipCode]='+frm.ZipCode.value
	q += '&info[State]='+frm.State.value
	q += '&info[PhoneTollFree]='+frm.PhoneTollFree.value
	q += '&info[PhoneLocal]='+frm.PhoneLocal.value
	q += '&info[Fax]='+frm.Fax.value
	q += '&info[VisibleEmail]='+frm.VisibleEmail.value
	q += '&info[TopPlayers]='+frm.TopPlayers.value
	q += '&info[TopGoalies]='+frm.TopGoalies.value
	
	VitaminXP.Ajax.RequestUrl(frm, up_dir + 'ajax/admin-functions.php','settings=update'+q,'POST','ok')
}

// Image Fader
// JavaScript Document
function fade_elements(from_id,to_id,src){
	var element1 = document.getElementById(from_id)
	var element2 = document.getElementById(to_id)
	var time = 2
	
	element2.src = element1.src
	element2.style.top = getOffsetTop(element1)
	element2.style.left = getOffsetLeft(element1)
	element2.style.display=''
	
	AnimateMe(to_id,{opacity:{from:1,to:0}},'easeBoth',time)
	
	//element1.src = src
	setTimeout('document.getElementById(\''+from_id+'\').src=\''+src+'\'',50)
	
	setTimeout('document.getElementById(\''+to_id+'\').src=\''+src+'\'',time*1000)
	
	var num = randomNumber(8)+1
	src = up_dir+'templates/default/images/image_'+num+'.jpg'
	
	var pic = new Image()
	pic.src = src
	
	setTimeout('fade_elements(\''+from_id+'\',\''+to_id+'\',\''+src+'\')',10000)
}

var timer = new Array();
var img = new Array();

function start_fader(){
	var num = randomNumber(8)+1
	var src = up_dir+'templates/default/images/image_'+num+'.jpg'
	
	fade_elements('fade_1','fade_2',src)
}

function getOffsetTop (elm) {
	var mOffsetTop = elm.offsetTop;
	var mOffsetParent = elm.offsetParent;
	while (mOffsetParent) {
		mOffsetTop += mOffsetParent.offsetTop;
		mOffsetParent = mOffsetParent.offsetParent;}
	return mOffsetTop;
}

function getOffsetLeft (elm) {
	var mOffsetLeft = elm.offsetLeft;
	var mOffsetParent = elm.offsetParent;
	while (mOffsetParent) {
		mOffsetLeft += mOffsetParent.offsetLeft;
		mOffsetParent = mOffsetParent.offsetParent;}
	return mOffsetLeft;
}

function randomNumber(limit){
  return Math.floor(Math.random()*limit);
}

AnimateMe = function(element_id,attributes){
	var args = 	AnimateMe.arguments
	var type = (args.length > 2)? args[2] : "easeBothStrong"
	var time = (args.length > 3)? args[3] : 0.8
	
	if(type == "easeBothStrong"){
		var anim = new YAHOO.util.Anim(element_id, attributes, time, YAHOO.util.Easing.easeBothStrong);
	}else if(type == "easeBoth"){
		var anim = new YAHOO.util.Anim(element_id, attributes, time, YAHOO.util.Easing.easeBoth);
	}
	
	anim.animate()
	
	anim = null
};
