
var xmlHttp;
var blockCtrls = false;
var xmlTimeout;
var prcTimeout;

function $$(o) { return document.getElementById( o ); }

function iShowPrivate( sObj ) {
	var aDisp = ( sObj.value == 0 ) ? 'none' : '';
	for( var i=0; i<6; ++i ) {
		document.getElementById( 'pbox_'+i ).style.display = aDisp;
	}
	document.getElementById( 'newgalform' ).style.display = ( sObj.value == "createnew" ) ? '' : 'none';
}

function confirmDel( ctext ) {
	if( confirm( ctext )) {
		document.getElementById( 'galDelForm' ).submit();
	}
}

function ajax() {
	try {
		xmlHttp=new XMLHttpRequest();
	} catch (e) {
		try {
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {
				alert("Your browser does not support AJAX!");
				return false;
			}
		}
	}
	
	xmlTimeout = setTimeout( ajaxTimeout, 5000 );
	
	xmlHttp.onreadystatechange = ajaxHandler;
	
	return true;
}

function DecToHex(number) {
  // take a decimal integer, return 2-digit hex string
  return hexbase.charAt((number>> 4)& 0xf)+ hexbase.charAt(number& 0xf);
}


function strtohex( str ) {
	var len = str.length;
	var retStr = '';
	var hexbase="0123456789abcdef";

	for( var i=0; i<len; i++ ) {
		retStr += hexbase.charAt((str.charCodeAt(i)>> 4)& 0xf);
		retStr += hexbase.charAt(str.charCodeAt(i) & 0xf);
	}
	
	return( retStr );
}

function findPosX(obj) {
	var curleft = 0;
	if(obj.offsetParent)
		while(1) {
			curleft += obj.offsetLeft;
			if(!obj.offsetParent)
				break;
			obj = obj.offsetParent;
		}
	else
		if(obj.x)
			curleft += obj.x;
	return curleft;
}

function findPosY(obj) {
	var curtop = 0;
	if(obj.offsetParent)
		while(1) {
			curtop += obj.offsetTop;
			if(!obj.offsetParent)
				break;
			obj = obj.offsetParent;
		}
	else
		if(obj.y)
			curtop += obj.y;
	return curtop;
}


function ddMenuSet( obj, parent, state, sel ) {
	if( blockCtrls ) return false;
	var parent = document.getElementById( parent );
	var curobj = document.getElementById( obj );
	var x = findPosX( parent );
	var y = findPosY( parent );
	curobj.style.position = 'absolute';
	curobj.style.top = (y+12)+'px';
	curobj.style.left = (x+12)+'px';
	curobj.style.display = state;
	if( sel.length >= 2 ) {
		var cControl = document.getElementById( sel );
		cControl.focus();
		cControl.select();
	}
	return true;
}

function ddF( objn, objt, sx ) {
	if( !blockCtrls )
		ddMenuSet( 'b'+objn+'_'+objt, 't'+objn+'_'+objt, '', sx );
	return true;
}

function ddC( objn, objt, sx ) {
	if( !blockCtrls )
		ddMenuSet( 'b'+objn+'_'+objt, 't'+objn+'_'+objt, 'none', sx );
	return true;
}

var xmlCallStr = siteurl+"/xmlHttp.php?phs="+__phs+"&";

function prcStart() {
	clearTimeout( prcTimeout );
	blockCtrls = true;
	document.getElementById( "proc_bar" ).innerHTML = _str_ajaxProcessing;
	window.status = _str_ajaxProcessing;
}

function prcStop( isError ) {
	prcTimeout = setTimeout( prcPostClear, 4444 );
	if( isError ) {
		if( isError == "timeout" ) {
			document.getElementById( "proc_bar" ).innerHTML = _str_ajaxTimeout;
			window.status = _str_ajaxTimeout;
		} else {
			document.getElementById( "proc_bar" ).innerHTML = _str_ajaxError;
			window.status = _str_ajaxError;
		}
	} else {
		document.getElementById( "proc_bar" ).innerHTML = _str_ajaxOk;
		window.status = _str_ajaxOk;
	}
	blockCtrls = false;
}

function prcPostClear() {
	document.getElementById( "proc_bar" ).innerHTML = '&nbsp;';
	window.status = '';
}

function delPrompt( iid, ctext ) {
	if( blockCtrls ) return false;
	if( confirm( ctext )) {
		prcStart();
		ajax();
		
		var sendstring = xmlCallStr+"job=del&iid="+iid;
		xmlHttp.open( "GET", sendstring , true );
		xmlHttp.send( null );
	}
	return true;
}

function aRename( iid ) {
	if( blockCtrls ) return false;
	prcStart();
	var prstr = document.getElementById( "r"+iid ).value;
	
	ajax();
	var sendstring = xmlCallStr+"job=ren&par="+strtohex( prstr.substr( 0, 20 ) )+"&iid="+iid;
	xmlHttp.open( "GET", sendstring, true );
	xmlHttp.send( null );
	
	return true;
}

function aTagCh( iid ) {
	if( blockCtrls ) return false;
	prcStart();
	var prstr = document.getElementById( "t"+iid ).value;
	
	ajax();
	var sendstring = xmlCallStr+"job=tag&par="+strtohex( prstr.substr( 0, 20 ) )+"&iid="+iid;
	xmlHttp.open( "GET", sendstring, true );
	xmlHttp.send( null );
	
	return true;
}

function aGalCh( iid ) {
	if( blockCtrls ) return false;
	prcStart();
	var prstr = document.getElementById( "g"+iid ).value;
	
	ajax();
	var sendstring = xmlCallStr+"job=gal&par="+prstr+"&iid="+iid;
	xmlHttp.open( "GET", sendstring, true );
	xmlHttp.send( null );
	
	return true;
}

function aPrivCh( iid ) {
	if( blockCtrls ) return false;
	prcStart();
	var isprv = ( document.getElementById( "p"+iid ).checked ) ? "1" : "0";
	
	ajax();
	var sendstring = xmlCallStr+"job=prv&par="+isprv+"&iid="+iid;
	xmlHttp.open( "GET", sendstring, true );
	xmlHttp.send( null );
	
	return true;
}

function chHC( iid ) {
	if( blockCtrls ) return false;
	prcStart();
	var ch = ( document.getElementById( "hc"+iid ).checked ) ? "1" : "0";
	
	ajax();
	var sendstring = xmlCallStr+"job=chc&par="+ch+"&iid="+iid;
	xmlHttp.open( "GET", sendstring, true );
	xmlHttp.send( null );
	
	return true;
}

function selectAll() {
	var maxid = parseInt( document.getElementById( '___maxid' ).value, 10 );
	for( var i=1; i<=maxid; i++ ) {
		document.getElementById( "___"+i ).checked = true;
	}	
}
	
function massAction( actiontype, objdata ) {
	var maxid = parseInt( document.getElementById( '___maxid' ).value, 10 );
	var str = '';
	for( var i=1; i<=maxid; i++ ) {
		if( document.getElementById( "___"+i ).checked ) {
			str += document.getElementById( "___"+i ).value + ":";
		}		
	}
	if( str.length == 0 )
		return false;
	str = str.substr( 0, str.length - 1 );
	
	document.getElementById( 'mass_array' ).value = str;
	document.getElementById( 'mass_job' ).value = actiontype;
	document.getElementById( 'mass_param' ).value = objdata;
	
	document.getElementById( 'mass_form' ).submit();
	
	return true;
}

function ajaxTimeout() {
	xmlHttp.abort();
	prcStop( 'timeout' );
}

function ajaxHandler() {
	if( xmlHttp.readyState == 4 ) {
		clearTimeout( xmlTimeout );
		if( xmlHttp.status == 200 ) {
			var data = xmlHttp.responseText ;
			if( data == "##refresh" ) {
				document.location.href= siteurl+"myi";
			} else if ( data.substr( 0, 4 ) == "resp" ) {
				var lnum = parseInt( data.substr( 8, 8 ), 10);
				var parType = data.substr( 5, 3 );
				var zstr = data.substr( 16 );
				if( parType == "ren" ) {
					var fullurlcode = document.getElementById( "c"+lnum ).value;
					document.getElementById( "t"+lnum+"_name" ).innerHTML = "<a href=\""+fullurlcode+"\">"+zstr+"</a>";
					document.getElementById( "r"+lnum ).value = zstr;
				} else if( parType == "tag" ) { 
					document.getElementById( "t"+lnum+"_tags" ).innerHTML = "<a href=\""+siteurl+"/tag/"+zstr+"\">"+zstr+"</a>";		
					document.getElementById( "t"+lnum ).value = zstr;					
				} else if( parType == "gal" ) {
					document.getElementById( "pglink"+lnum ).innerHTML = zstr;		
					//document.getElementById( "g"+lnum ).value = zstr;
				} else if( parType == "chc" ) {
					document.getElementById( "hc"+lnum ).checked = ( zstr == "1" ) ? true : false;
				} else if( parType == "prv" ) {
					document.getElementById( "p"+lnum ).checked = ( zstr == "1" ) ? true : false;
					document.getElementById( "pglink"+lnum ).className = ( zstr == "1" ) ? 'prlink_red' : 'prlink_green';
				}
			} else {

			}
			xmlHttp = null;	
			prcStop( false );
		} else {
			prcStop( true );
		}
	}
}

if(!Array.indexOf){
        Array.prototype.indexOf = function(obj){
                for(var i=0; i<this.length; i++){
                        if(this[i]==obj){
                                return i;
		        }
		}
	        return -1;
	}
}

HTMLSelectElement.prototype.addOption = function( text, val, selected ) {
        if( selected == null ) selected = false;
        try {
               this.add( new Option( text, val, selected ), null ) 
        } catch( e ) {
               this.add( new Option( text, val, selected ), 0 ); 
        }
}

HTMLSelectElement.prototype.__defineGetter__( 'value', function() {
	return( this.options[parseInt(this.selectedIndex)].value );
	}
);

function daysUpdate( day, month, year, defval, defday ) {
        if( defval == null ) defval = true;
        if( defday == null ) defday = 0;
        try {
                var years = parseInt( $$( year ).options[$$( year ).selectedIndex].value ); 
        } catch( e ) { var years = 2004; }
        try {
                var months = parseInt( $$( month ).options[$$( month ).selectedIndex].value )-1; 
        } catch( e ) { var months = 1; }
        var days = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ];
        var dayo = $$( day );
        while( dayo.length )
                dayo.remove( 0 );
        if( months == ( 2-1 ) )
                var daysmax = (isLeapYear(years))?29:28;
        else
                var daysmax = days[months];
	if( defval ) {
                dayo.addOption( str_choose, '?' );
        }
        for( var i=1; i<=daysmax; ++i ) {
                dayo.addOption( i+"", i, (defday==i)?true:false );
        }
}

