/**
 * Client Side Functions Library for iGate
 * @access global
 * @author YP. Ajie (ajie@ageedev.com)
 * @abstract Handle AJAX Style operation.
 * @since 11/05/2006
 */

var imgs = new Image;
var img_ok = new Image;
var img_notok = new Image;
var resultBuffer = '';
var timerID = 0;

imgs.src = "/admin/_templates/default/images/progress.gif";
img_ok.src = "/admin/_templates/default/images/icons/ok.png";
img_notok.src = "/admin/_templates/default/images/icons/notok.png";

function getHTTPObject() {
				var http_object;
					/*@cc_on
					@if (@_jscript_version >= 5)
						try {
							http_object = new ActiveXObject("Msxml2.XMLHTTP");
						}
						catch (e) {
							try {
								http_object = new ActiveXObject("Microsoft.XMLHTTP");
							}
							catch (E) {
								http_object = false;
							}
						}
					@else
						xmlhttp = http_object;
					@end @*/

				if (!http_object && typeof XMLHttpRequest != 'undefined') {
					try {http_object = new XMLHttpRequest();}
					catch (e) {http_object = false;}
				}

	return http_object;
}

function startProgress(strMessage,btn,divcontainer){
	document.getElementById(divcontainer).innerHTML=' ';
	document.getElementById(divcontainer).style.display='';
	//document.getElementById(btn).disabled = true;
	document.getElementById(divcontainer).innerHTML = "<img id='progressrotator' src='/admin/_templates/default/images/progress.gif' align=absmiddle>&nbsp;&nbsp;" + strMessage + "...";
}

//EXPERIMENTAL
function playVid(){
	
  soundManager.createVideo({
    id:'photos3Demo',
    url:'http://freshly-ground.com/data/video/Yahoo! Photos 3 UI.MP4'
  });
  soundManager.play('photos3Demo');
	
}


function playSound(soundfile,soundID){
	var mySound = soundManager.createSound({
    id: soundID,
    url: soundfile
  });
  mySound.play();

}


function resetProgress(strMessage,btn,divcontainer,warning){
	document.getElementById(divcontainer).style.display='';
	document.getElementById(btn).disabled = false;
	if(warning==1){
		document.getElementById(divcontainer).innerHTML = "<img id='progressrotator' src='/admin/_templates/default/images/icons/icon_error.gif' align=absmiddle>&nbsp;&nbsp;" + strMessage + "...";
	}else{
		document.getElementById(divcontainer).innerHTML = "<img id='progressrotator' src='/admin/_templates/default/images/icons/icon_info.gif' align=absmiddle>&nbsp;&nbsp;" + strMessage + "...";
	}
	delayedMessageOut(divcontainer);
}

function delayedMessageOut(divcontainer){
	setTimeout("messageOut('" + divcontainer + "')", 4000);
}

function messageOut(divcontainer){
	document.getElementById(divcontainer).innerHTML='';
	document.getElementById(divcontainer).style.display='none';

}

function Get_Cookie(name) {
   var start = document.cookie(name+"=");
   var len = start+name.length+1;
   if ((!start) && (name != document.cookie.substring(0,name.length))) return null;
   if (start == -1) return null;
   var end = document.cookie(";",len);
   if (end == -1) end = document.cookie.length;
   return unescape(document.cookie.substring(len,end));
}

function Set_Cookie(name,value,expires,path,domain,secure) {
    var cookieString = name + "=" +escape(value) +
       ( (expires) ? ";expires=" + expires.toGMTString() : "") +
       ( (path) ? ";path=" + path : "") +
       ( (domain) ? ";domain=" + domain : "") +
       ( (secure) ? ";secure" : "");
    document.cookie = cookieString;
}

function Delete_Cookie(name,path,domain) {
   if (Get_Cookie(name)) document.cookie = name + "=" +
      ( (path) ? ";path=" + path : "") +
      ( (domain) ? ";domain=" + domain : "") +
      ";expires=Thu, 01-Jan-70 00:00:01 GMT";
}

//Buat Focus/Blur Value Input Text
function inputfocus(id, valueinput){
	if(document.getElementById(id).value == valueinput) {
		document.getElementById(id).value = '';
	}	
}

function inputblur(id, valueinput){
	if(document.getElementById(id).value == '') {
		document.getElementById(id).value = valueinput;
	}
}

function switchLanguage(langCode){
	var currentLocation = document.location;

	Set_Cookie('strCurrLang',langCode);
	top.location = currentLocation;
}

function setCookie(c_name,value,expiredays)
{
var exdate=new Date();
exdate.setDate(exdate.getDate()+expiredays);
document.cookie=c_name+ "=" +escape(value)+
((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
}


function getCookie(c_name)
{
if (document.cookie.length>0)
  {
  c_start=document.cookie.indexOf(c_name + "=");
  if (c_start!=-1)
    {
    c_start=c_start + c_name.length+1;
    c_end=document.cookie.indexOf(";",c_start);
    if (c_end==-1) c_end=document.cookie.length;
    return unescape(document.cookie.substring(c_start,c_end));
    }
  }
return "";
}


//Encode and decode base64
var END_OF_INPUT = -1;

var base64Chars = 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','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','0','1','2','3',
    '4','5','6','7','8','9','+','/'
);

var reverseBase64Chars = new Array();
for (var i=0; i < base64Chars.length; i++){
    reverseBase64Chars[base64Chars[i]] = i;
}

var base64Str;
var base64Count;
function setBase64Str(str){
    base64Str = str;
    base64Count = 0;
}
function readBase64(){    
    if (!base64Str) return END_OF_INPUT;
    if (base64Count >= base64Str.length) return END_OF_INPUT;
    var c = base64Str.charCodeAt(base64Count) & 0xff;
    base64Count++;
    return c;
}
function encodeBase64(str){
    setBase64Str(str);
    var result = '';
    var inBuffer = new Array(3);
    var lineCount = 0;
    var done = false;
    while (!done && (inBuffer[0] = readBase64()) != END_OF_INPUT){
        inBuffer[1] = readBase64();
        inBuffer[2] = readBase64();
        result += (base64Chars[ inBuffer[0] >> 2 ]);
        if (inBuffer[1] != END_OF_INPUT){
            result += (base64Chars [(( inBuffer[0] << 4 ) & 0x30) | (inBuffer[1] >> 4) ]);
            if (inBuffer[2] != END_OF_INPUT){
                result += (base64Chars [((inBuffer[1] << 2) & 0x3c) | (inBuffer[2] >> 6) ]);
                result += (base64Chars [inBuffer[2] & 0x3F]);
            } else {
                result += (base64Chars [((inBuffer[1] << 2) & 0x3c)]);
                result += ('=');
                done = true;
            }
        } else {
            result += (base64Chars [(( inBuffer[0] << 4 ) & 0x30)]);
            result += ('=');
            result += ('=');
            done = true;
        }
        lineCount += 4;
        if (lineCount >= 76){
            result += ('\n');
            lineCount = 0;
        }
    }
    return result;
}
function readReverseBase64(){   
    if (!base64Str) return END_OF_INPUT;
    while (true){      
        if (base64Count >= base64Str.length) return END_OF_INPUT;
        var nextCharacter = base64Str.charAt(base64Count);
        base64Count++;
        if (reverseBase64Chars[nextCharacter]){
            return reverseBase64Chars[nextCharacter];
        }
        if (nextCharacter == 'A') return 0;
    }
    return END_OF_INPUT;
}

function ntos(n){
    n=n.toString(16);
    if (n.length == 1) n="0"+n;
    n="%"+n;
    return unescape(n);
}

function decodeBase64(str){
    setBase64Str(str);
    var result = "";
    var inBuffer = new Array(4);
    var done = false;
    while (!done && (inBuffer[0] = readReverseBase64()) != END_OF_INPUT
        && (inBuffer[1] = readReverseBase64()) != END_OF_INPUT){
        inBuffer[2] = readReverseBase64();
        inBuffer[3] = readReverseBase64();
        result += ntos((((inBuffer[0] << 2) & 0xff)| inBuffer[1] >> 4));
        if (inBuffer[2] != END_OF_INPUT){
            result +=  ntos((((inBuffer[1] << 4) & 0xff)| inBuffer[2] >> 2));
            if (inBuffer[3] != END_OF_INPUT){
                result +=  ntos((((inBuffer[2] << 6)  & 0xff) | inBuffer[3]));
            } else {
                done = true;
            }
        } else {
            done = true;
        }
    }
    return result;
}


//Get URL Parameter
function queryString(parameter) { 
	var loc = window.location.href;
	var param_value = false;

	var params = loc.split("&");
	for (i=0; i<params.length;i++) {
	  param_name = params[i].substring(0,params[i].indexOf('='));
	  if (param_name == parameter) {
		  param_value = params[i].substring(params[i].indexOf('=')+1)
	  }
	}
	if (param_value) {
	  return param_value;
	}
	else {
	  return false; //Here determine return if no parameter is found
	}
}
