/**
 * An Application
 *
 * @author    Octadyne Systems
 * @copyright (c) 2008, by Octadyne Systems
 * @date      8. August 2008
 * @version   $Id$
 *
 */
function ajaxUpdate(hash) {
	var aryHash=hash.split("/");
	var aryURL=aryHash[1].split("?");
	var strParam="";
	if (aryURL.length >= 2) {
		for (iCtr = 1; iCtr < aryURL.length; iCtr++) {
			strParam += aryURL[iCtr] + "&";
		}
	}
	updateDiv(aryHash[0],aryURL.shift(),left(strParam,strParam.length-1));
}
function updateDiv(id,url,param) {
	// short handed call directly from the element object
	AJAX_get(id,url,'get',param);
	//alert(param);
}
function AJAX_get(div,file,method,params_string) {
	showAjaxLoading();
	jQuery.ajax({
		type: method,
		url: file,
		data: params_string,
		timeout: 20000,
		error: function (XMLHttpRequest, textStatus, errorThrown) {
			AJAX_error(XMLHttpRequest, textStatus, errorThrown);
		},
		success: function(html){
			jQuery("#" + div).html(html);
			AJAX_success();
		}
	});
}

function showAjaxLoading() {
	var winWidth=jQuery(window).width();
	var scrollTop;
	if(self.pageYOffset) {
		scrollTop = self.pageYOffset;
	}
	else if(document.documentElemet && document.documentElement.scrollTop) {
		scrollTop = document.documentElement.scrolTop;
	}
	else if(document.body) {
		scrollTop = document.body.scrollTop;
	}
	jQuery('#ajax-loading').css('position', 'absolute');
	jQuery('#ajax-loading').css('top', scrollTop+'px');
	jQuery('#ajax-loading').css('left', parseInt((winWidth-150)/2)+"px");
	jQuery('#ajax-loading').show();
}

function hideAjaxLoading() {
	jQuery('#ajax-loading').hide();
}


function AJAX_success() {
	document.body.style.cursor = "auto";
	hideAjaxLoading();
}

function AJAX_error(XMLHttpRequest, textStatus, errorThrown) {
	alert("I'm sorry there has been an error.\n\nPlease try again later.");
}

function ajaxFileUpload(strAsset,strFieldName)
{
	var strURL='/doajaxfileupload.cfm?asset=' + strAsset;
	var strName = ("afp" + (new Date()).getTime());
	jQuery("#ajax-fileloading").show();
	jQuery.ajaxFileUpload ( {
			url:strURL,
			secureuri:false,
			fileElementId:'fileToUpload',
			dataType: 'json',
			beforeSend:function()
			{
				jQuery("#ajax-fileloading").show();
			},
			complete:function()
			{
				jQuery("#ajax-fileloading").hide();
			},				
			success: function (data, status)
			{
				if(typeof(data.error) != 'undefined')
				{
					if(data.error != '')
					{
						alert(data.error);
					}else
					{
						var strFile="<li id='" + strName + "'>";
							strFile +="<a href=\"" + data.path + "/" + data.filename + "\" target=\"_blank\"><img src='" + data.path + "/th_" + data.filename + "' /></a>";
							strFile += "<br /><a href=\"javascript:removeFile('" + strName + "');\">remove</a>";
							strFile += "<input type=\"hidden\" name=\"" + strFieldName + "\" value=\"" + data.filename + "\">";
							strFile += "</li>";
						jQuery("#form-files").append(strFile);
					}
				}
				jQuery("#fileToUpload").val('');
				jQuery("#ajax-fileloading").hide();
			},
			error: function (data, status, e)
			{
				alert(e);
			}
		}
	)
	
	return false;
} 

function removeFile(id) {
	jQuery("#" + id).remove();
}
function left(str, n){
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}
function right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}
function filterFilename(filename) {
	filename = filename.replace(new RegExp('[^a-z0-9]+', 'g'), '-');
	//pagename = pagename.replace(/\s/g,"-");
	filename = filename.toLowerCase();
	
	return filename;
}
function custom_confirm(dialogid, action){
jQuery(dialogid).dialog({
		bgiframe: true,
		resizable: false,
		modal: true,
		autoOpen: false, 
		overlay: {
			backgroundColor: '#000',
			opacity: 0.5
		},
		buttons: {
			Cancel: function() {
				jQuery(this).dialog('close');
			},
			'Delete': function() { 
				jQuery(this).dialog('close');
				action();
			}
			
		}
	});
	jQuery(dialogid).dialog('open');
}

function jqCheckAll( id, name, flag )
{
   if (flag == 0)
   {
      jQuery("form#" + id + " INPUT[@name=" + name + "][type='checkbox']").attr('checked', false);
   }
   else
   {
	   jQuery("form#" + id + " INPUT[@name=" + name + "][type='checkbox']").attr('checked', true);
   }
}
//Check for special characters
function checkSpecialCharacters(value){
 var iChars = ".*|/,\":<>[]{}`\';()@&$#%^~=+?!";
 for (var i = 0; i < value.length; i++) {
  if (iChars.indexOf(value.charAt(i)) != -1){
   return false;
  }
 }
 return true;
} 
//Check for white space
function whiteSpaceNotExists(value){
	var result = true;
	if(value.indexOf(' ') > -1){
		result = false;
	}
	return result;
}
