//
// Copyright (c) 2006. mapanno (http://www.mapanno.com/).
// All rights reserved.
//

function smGetChecked(ele){
var v = '';
if(ele.length){
for (var i = 0; i < ele.length; i++){
	if (ele[i].checked == true)v = ele[i].value;
}
} else {
	if (ele.checked == true)v = ele.value;
}
return v;
}

function smBlankValue(v){
	if ( v == null || v == "" || isblank(v) ) return true;
	else return false;	
}

function getFV (id){
  return document.getElementById(id).value;
}


function isblank(s){
   for(var i=0; i < s.length; i++){
    var c = s.charAt(i);
    if((c != ' ') && (c != '\n') && (c != '\t')) return false;
   } 
   return true; 
}

function smMouseXY(e)
{
  if (!e) e = window.event;
  if (e)
  {
    if (e.pageX || e.pageY){
      smMouseX = e.pageX;
      smMouseY = e.pageY;
    }
    else if (e.clientX || e.clientY){
      smMouseX = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
      smMouseY = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
    }
  }
}


function getPageSize(){
	var de = document.documentElement;
	var w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
	var h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight;
	arrayPageSize = new Array(w,h);
	return arrayPageSize;
}

function smCallback (req){
	if (!req || req.xhRequest.readyState != 4)
		return;
	try{
	if (req.successCallback && (req.xhRequest.status == 200 || req.xhRequest.status == 0))
		req.successCallback(req);
	else if (req.errorCallback)
		req.errorCallback(req);
	} catch(e){req = null; smStatus('Failed to get a response from the website - this action has been cancelled.');}
};

function smSendRequest (req) {
 	try
	{
		req.xhRequest = Spry.Utils.createXMLHttpRequest();
		if (!req.xhRequest)
			return null;

		if (req.async)
			req.xhRequest.onreadystatechange = function() { smCallback(req); };

		req.xhRequest.open(req.method, req.url, req.async, req.username, req.password);
		
		if (req.headers)
		{
			for (var name in req.headers)
				req.xhRequest.setRequestHeader(name, req.headers[name]);
		}
		req.xhRequest.send(req.postData);

		if (!req.async)
			smCallback(req);
	}
	catch(e) { req = null; smStatus('Failed to get a response from the website - this action has been cancelled.'); }

	return req;
}

function smRequest () {
	var props = [ "method", "url", "async", "username", "password", "postData", "successCallback", "errorCallback", "headers", "userData", "xhRequest" ];
	var numProps = props.length;

	for (var i = 0; i < numProps; i++)
		this[props[i]] = null;

	this.method = "POST";
	this.async = true;
	this.headers = {"Content-Type":"application/x-www-form-urlencoded"};
};

function smStatusAlert(idx){

	var statusMsg = [ "Only JPG and GIF formats are currently supported. Try converting your resource into one of the supported formats." , "You need to locate the resource FILE on your drive." , "You need to provide a short DESCRIPTION." , "You need to provide a TITLE.", "Delete failed", "Deleted", "You need to provide a LABEL." , "You need to select the individual mapanno to be included in this slide show using the drop down box above.", "You need to select the size of image required for the background of your mapanno. If you are unsure which to use then look at all the sizes available by clicking the resource 'preview' button."];
	alert(statusMsg[idx]);
}

function smCheckReg(){
	var form = document.register;
	var r = new RegExp("[\<|\>|\"|\'|\%|\;|\(|\)|\&|\+|\-]", "i");
	// do field validation
	if (form.username.value == "" || r.exec(form.username.value) || form.username.value.length < 3) {
		alert( "Please enter a valid sign-in name which is 3 characters or more and contains only alphanumeric characters." );
	} else if (form.email.value == "") {
		alert( "Please enter a valid e-mail address." );
	} else {
		form.submit();
	}
}

function smTryMarkup(){
	var url = document.getElementById('mpo-demo-url').value;
	if(url.substr(0,7) != 'http://') url = 'http://'+url;
	url = 'http://www.mapanno.com/markup/?id=demonstration&url='+encodeURIComponent(url);
	window.open(url,'demo','width=700,height=600,toolbar=yes,location=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes'); 
}

function smNewMarkup(url){
	var d = url.split(':');
	var f = document.forms['smk-tpl'];
	f.width.value = d[2]; f.height.value = d[3]; f.label.value = d[1]; f.url.value = decodeURIComponent(d[0]); f.lang.value = d[4];
	//document.location.replace(url);
	//window.open(url,'newmarkup','width=700,height=600,toolbar=yes,location=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes'); 
}

function smStatus(msg){
 alert(msg);
}