var ie= document.all;
var nn6= document.getElementById&&!document.all;

function getElementPosition(obj)
{ 
    var position = new Object(); 
    position.left =   calcLeftPosition(obj); 
    position.top =    calcTopPosition(obj); 
    position.right =  ((position.left + obj.offsetWidth) - document.body.clientWidth) * -1;
    return position; 
} 

function calcLeftPosition (obj) 
{ 
    var curleft = obj.offsetLeft; 

    while(obj.offsetParent) 
      {curleft=curleft + (obj.offsetParent.offsetLeft); 
       obj=obj.offsetParent; 
      } 
        
    return curleft; 
} 

function calcTopPosition(obj) // in order to work with an element that has been scrolled, element must have position:relative; explistly set
{ 
    var curtop = 0; 
    if (obj.offsetParent) 
    { 
        while (1) 
        { 
            curtop+=obj.offsetTop - obj.scrollTop; 
            if (!obj.offsetParent) 
                break; 
        
            obj=obj.offsetParent; 
        } 
    } 
    else if (obj.y) 
        curtop+=obj.y; 
    
    curtop += document.body.scrollTop
    return curtop; 
} 

function visTog(id , idToShow)
{
	
    	var ele = g(id);
	    
	    if(ele.style.display != 'none')
		    ele.style.display= 'none';
	    else
		    ele.style.display = '';
	
		
	if(idToShow)
	{
		var eleToShow = g(idToShow);
		if(eleToShow.style.display != 'none')
			eleToShow.style.display= 'none';
		else
			eleToShow.style.display = '';
	}
	
	GlobalResize();
}

function g(eleID)
{
	return document.getElementById(eleID);
}

function GLOBAL_array_addUnique(val , arr)
{
	if(GLOBAL_array_indexOf(val , arr) == -1)
		arr.push(val);
}

function GLOBAL_array_removeByVal(val , arr)
{
	var indexAt = GLOBAL_array_indexOf(val , arr);
	
	if(indexAt != -1)
		GLOBAL_array_remove(indexAt , arr);
}

function GLOBAL_array_remove(indexAt , arr)
{
	arr.splice(indexAt , 1);
}

function GLOBAL_array_indexOf(val , arr)
{
	for(var i = 0; i < arr.length; i++)
		if(arr[i] == val)
			return i;
		
	return -1;
}

function LBodyWidth()
{
	return document.body.clientWidth;
}

function LBodyHeight()
{
	return document.body.clientHeight;
}

function DetectEnter(e)
{
	if(e)
	    return e.keyCode == 13;
	else
		return window.event.keyCode == 13;
	
	return false;
}


function GLOBAL_setHiddenValueAndSubmit(varibleID , value)
{	
	document.getElementById(varibleID).value = value;
}

function getQueryVariable(variable) 
{
  var query = window.location.search.substring(1);
  var vars = query.split("&");
  for (var i=0;i<vars.length;i++) {
    var pair = vars[i].split("=");
    if (pair[0] == variable) {
      return pair[1];
    }
  } 
  return '';
}

function getSlashVariable(index) 
{
    var vars = window.location.pathname.substring(1).split('/');
    
    if(vars[index])
        return vars[index];
    
    return '';
}

function IsNumber(charVar)
{
	return charVar.match(/\d/) != null;
}

function IsEmptyText(text)
{
	for(var i = 0; i < text.length; i++)
		if(text.charAt(i).match(/\s/) == null)
			return false;
	
	return true;
}

function setSelectionRange(input, selectionStart, selectionEnd) {
  if (input.setSelectionRange) {
    input.focus();
    input.setSelectionRange(selectionStart, selectionEnd);
  }
  else if (input.createTextRange) {
    var range = input.createTextRange();
    range.collapse(true);
    range.moveEnd('character', selectionEnd);
    range.moveStart('character', selectionStart);
    range.select();
  }
}

function replaceSelection (input, replaceString) {
	if (input.setSelectionRange) {
		var selectionStart = input.selectionStart;
		var selectionEnd = input.selectionEnd;
		input.value = input.value.substring(0, selectionStart)+ replaceString + input.value.substring(selectionEnd);
    
		if (selectionStart != selectionEnd){ 
			setSelectionRange(input, selectionStart, selectionStart + 	replaceString.length);
		}else{
			setSelectionRange(input, selectionStart + replaceString.length, selectionStart + replaceString.length);
		}

	}
	else if (document.selection) {
		var range = document.selection.createRange();

		if (range.parentElement() == input) {
			var isCollapsed = range.text == '';
			range.text = replaceString;

			 if (!isCollapsed)  {
				range.moveStart('character', -replaceString.length);
				range.select();
			}
		}
	}
}

function catchTab(item,e)
{
    if(navigator.userAgent.match("Gecko")){   
        c=e.which;   
    }else{   
        c=e.keyCode;   
    }   
    if(c==9)
    {   
        replaceSelection(item,String.fromCharCode(9));   
        setTimeout("document.getElementById('"+item.id+"').focus();",0);       
        return false;   
   }
}

function lescape(txt)
{
    return escape(txt).replace(/\+/g , '%2b');
}

var mouseX, mouseY;

function getMousePos(e)
{
    if (!e)
        var e = window.event||window.Event;

    if('undefined'!=typeof e.pageX)
    {
        mouseX = e.pageX;
        mouseY = e.pageY;
    }
    else
    {
        mouseX = e.clientX;
        mouseY = e.clientY;
    }
    
}

function Log(txt)
{
    if(typeof(console) != 'undefined')
    {   
        var t = new String();
        for(var i = 0; i < txt.length; i += 200)
            t += txt.substring(i , txt.length > 200 ? i + 200 : txt.length) + '\n';
        
     //   console.log(t);
    }
}


// WP Audio player
var ap_instances = new Array();

function ap_stopAll(playerID) {
	for(var i = 0;i<ap_instances.length;i++) {
		try {
			if(ap_instances[i] != playerID) document.getElementById("audioplayer" + ap_instances[i].toString()).SetVariable("closePlayer", 1);
			else document.getElementById("audioplayer" + ap_instances[i].toString()).SetVariable("closePlayer", 0);
		} catch( errorObject ) {
			// stop any errors
		}
	}
}

function ap_registerPlayers() {
	var objectID;
	var objectTags = document.getElementsByTagName("object");
	for(var i=0;i<objectTags.length;i++) {
		objectID = objectTags[i].id;
		if(objectID.indexOf("audioplayer") == 0) {
			ap_instances[i] = objectID.substring(11, objectID.length);
		}
	}
}

var ap_clearID = setInterval( ap_registerPlayers, 100 );

var ap_colorInput, ap_fieldSelector, ap_selectedField;
window.onload = function() {
	if( !document.getElementById("ap_colorvalue") ) return;
	ap_colorInput = document.getElementById("ap_colorvalue");
	ap_fieldSelector = document.getElementById("ap_fieldselector");
	ap_selectField();
	ap_setPagebgField();
	setInterval( ap_updateColors, 1000 );
}
function ap_selectField() {
	ap_selectedField = ap_fieldSelector.options[ap_fieldSelector.selectedIndex].value;
	ap_colorInput.value = document.getElementById("ap_" + ap_selectedField + "color").value;
}
function ap_updateColors() {
	document.getElementById("ap_" + ap_selectedField + "color").value = ap_colorInput.value;
	var audioplayer = document.getElementById("audioplayer1");
	audioplayer.SetVariable(ap_selectedField, ap_colorInput.value.replace("#", "0x"));
	audioplayer.SetVariable("setcolors", 1);
}
function ap_setPagebgField() {
	var bgField = document.getElementById("ap_pagebgcolor");
	if(document.getElementById("ap_transparentpagebg").checked) {
		bgField.disabled = true;
		bgField.style.color = "#999999";
	} else {
		bgField.disabled = false;
		bgField.style.color = "#000000";
	}
}

function ap_stopAll(a) {
	return;
}

function ap_startUpgradeWizard() {
	var ap_upgrade = window.open( ap_updateURL, "ap_upgrade", "width=500,height=270,status=no" );
}

var L_Alphabet = new Array('A' , 'B' , 'C' , 'D' , 'E' , 'F' , 'G' , 'H' , 'I' , 'J' , 'K' , 'L' , 'M' , 'N' , 'O' , 'P' , 'Q' , 'R' , 'S' , 'T' , 'U' , 'V' , 'W' , 'X' , 'Y' , 'Z');
var L_ScrambleOffset = 16;

function L_Scramble(input)
{
    input = input.toUpperCase();
    
    var rchar = new Array();

    for (var i = 0; i < input.length; i++)
        rchar.push(L_Scramble_GetNewByte(input.charAt(i)));
    
    var rstrg = '';
    for(var i = 0; i < rchar.length; i++)
        rstrg += GetLetterFromNumber(rchar[i]);
    
    return rstrg;
}

function L_UnScramble(input)
{
    var rchar = new Array();

    for (var i = 0; i < input.length; i++)
            rchar.push(L_Scramble_GetUnByte(input.charAt(i)));

    var rstrg = '';
    for(var i = 0; i < rchar.length; i++)
        rstrg += GetLetterFromNumber(rchar[i]);
    
    return rstrg;
}

function L_Scramble_GetNewByte(b)
{
    var letterIndex  = GLOBAL_array_indexOf(b, L_Alphabet);
    
    if(letterIndex  == -1)
        return b;
    
    letterIndex += 65;    
        
    var minValue = 65;
    var maxValue = 90;

    var tb = letterIndex + L_ScrambleOffset;

    var rval = tb > maxValue ? (minValue + (tb - maxValue)) : tb;
    
    return rval;
}

function L_Scramble_GetUnByte(b)
{
    var letterIndex  = GLOBAL_array_indexOf(b, L_Alphabet);

    if(letterIndex  == -1)
        return b;
    
    letterIndex += 65;    
        
    var minValue = 65;
    var maxValue = 90;

    var tb = letterIndex - L_ScrambleOffset;

    var rval = tb < minValue ? ((tb + maxValue) - minValue) : tb;

    return rval;
}

function GetLetterFromNumber(number)
{
    var rval = L_Alphabet[number - 65];
    
    if(rval)
        return rval;
   else
        return number;     
}