var lengthPBar = 150;
var heightPBar = 20;

el = document.getElementById('imgcount');
if (el) {
    var imCount= el.value;  
    var imGCount= el.value;
}
else {
    var imCount= 25;  
    var imGCount= 25;
}

var preImages = new Array();
var ii=1;
var gg=1;

var imWidth = 70;
var imHeight = 60;
var checkingTimes=0;

var originalKeys;
var startVisibleIndex;
var listImages = new Array();
var listUrls = new Array();
var xSizes = new Array();
var ySizes = new Array();

var listSelectedImages = new Array();
var xSelectedImages = new Array();
var ySelectedImages = new Array();


var startG_VisibleIndex=0;

var xmlHttp;
var keys;
var key;
var gKeys;
var gKey;
var plusKeys;
var t;
var t2;
var path="";
var deletedIndex=-1;
var uuids;
var luids;
var auids;
var lklinks;

var browser=navigator.appName;
var b_version=navigator.appVersion;
var version=parseFloat(b_version);

var purl = "";
var ttls = false;
var imgTitlez;
var titlez;
var llist;
var ulist;

var imgurl;
var winwidth;
var winheight;

function downPictures(event){
  if (startVisibleIndex<listImages.length-imCount)
    startVisibleIndex+=imCount;
  loadPictures();}

function upPictures(event){
  if (startVisibleIndex>0)
    startVisibleIndex-=imCount;
  loadPictures();}

function loadPicturesPage(page){
  startVisibleIndex=page*imCount;
  loadPictures();}

function loadPictures() {
    if (t) {
	clearTimeout(t);}
    if (t2) {
	clearTimeout(t2);}
    keys = document.getElementsByName("im");
    if (ttls) {
	framez = document.getElementsByName("imgframe");
	titlez = document.getElementsByName("imgtext");
	thcellz = document.getElementsByName("ajaxthumbcell");}
    else {
	plusKeys = document.getElementsByName("pl");}
    clearImage();
    ii=1;
    if (keys){
    luids = getCookie('todoimagelist');
    if (!luids) luids = '';
	setImage();}

    Shadowbox.init({ skipSetup: true }); 
    Shadowbox.setup(); 

}

function setImage() {
    if(ii <= keys.length){
        key = keys[ii - 1];
	curVisibleIndex = ii - 1 + startVisibleIndex;
	if (ttls) {
	    var frm = framez[ii - 1];
	    var ttl = titlez[ii - 1];
	    var thcell = thcellz[ii - 1];}
	else {
	    var plusKey = plusKeys[ii - 1];}
	if (lklinks) {
	    var lklink = lklinks[ii - 1];}
        if (( curVisibleIndex) >= 0 && (curVisibleIndex) < listImages.length 
            && listImages[curVisibleIndex] != null && listImages[curVisibleIndex] != "") {
            key.innerHTML = "<img id='img"+ii+"' src=\"" + listImages[curVisibleIndex]+"\" width=\""+xSizes[curVisibleIndex]+"\" height=\""+ySizes[curVisibleIndex]+"\"  >";
	    urla = listImages[curVisibleIndex];
	    //imgurl = urla.substring(0, urla.length - 24); //   /image/variant/thumbnail = 23 symbols
        imgurl = listUrls[curVisibleIndex];
            key.note = path + listImages[curVisibleIndex];
	    if (ttl) {
		// processing link url and popup window size.
		frm.style.visibility = 'visible';
        frm.style.height = '200px';
		key.href = imgurl;
		iwidth = Math.round(parseInt(xSizes[curVisibleIndex]) * 3);
		iheight = Math.round(parseInt(ySizes[curVisibleIndex]) * 3);
		if (iheight < iwidth) {
		    winheight = (iheight + 300) + '';
		    winwidth = (iwidth + 280) + '';}
		else {
		    winheight = (iheight + 220) + '';
		    winwidth = (iwidth + 300) + '';}
		//fstr = 'setCookie(\'zoom_state\', \'0\'); popwin = window.open(\'' + imgurl + '\', \'_blank\', \'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=0,width=' + winwidth + ',height=' + winheight + '\'); popwin.focus(); return false;';
		//key.onclick = Function(fstr);
		ttl.innerHTML = imgTitlez[curVisibleIndex];
	    };
	    if (lklinks) {
		// alert(luids.indexOf(ulist[curVisibleIndex]));
		lklink.href = "javascript:showForm('" +ulist[curVisibleIndex]+"',"+ (ii-1) +");";
		var wishlist=document.getElementsByName('wishlist');
		if (luids.indexOf(ulist[curVisibleIndex]) != -1) {
			lklink.style.display = "none";
			if(wishlist && wishlist[ii-1]) wishlist[ii-1].style.display = "none";
		}
		else {
			lklink.style.display = "inline";
			if(wishlist && wishlist[ii-1]) wishlist[ii-1].style.display = "none";
		}
	    }
	    if (!ttls) {
		if (hasArrayValue(listSelectedImages,(listImages[curVisibleIndex]))>=0) {
		    plusKey.innerHTML=" Added";
		    plusKey.note="";
		    plusKey.onmousedown=null;}
		else {
		    plusKey.innerHTML="<IMG id='' SRC=\"plus1.jpg\"   width=\"16\" height=\"16\">";
		    plusKey.note=listImages[curVisibleIndex];
		    plusKey.onmousedown=plusClick;}
	    }
	}
	else {
	    if (ttls) {
		//alert(thcell.style.height);
		//frm.style.visibility = 'hidden';
		//ttl.innerHTML = 'empty cell';
		//ttl.style.height = '20px';
		frm.style.height = '0px';
		//thcell.innerHTML = 'empty cell';
		//thcell.style.height = '0px';
	    }
	    if (!ttls) {
		key.innerHTML="";
		key.note="";
		key.onmousedown=null;
		plusKey.innerHTML="";
		plusKey.note="";
		plusKey.onmousedown=null;
	    }
	}
        checkLoad();
    }
    Shadowbox.init({ skipSetup: true }); 
    Shadowbox.setup(); 
}

function clearImage() {
    ii = 1;
    while(ii <= keys.length) {
        key=keys[ii-1];
	if (ttls) {
	    var frm = framez[ii - 1];
	    var ttl = titlez[ii - 1];
	    frm.style.visibility = 'hidden';
	    ttl.innerHTML = '';	}
	else {
	    var plusKey=plusKeys[ii-1];
	    plusKey.innerHTML = '';
	    plusKey.note="";
	    plusKey.onmousedown=null;}
	key.innerHTML = '';
	key.note="";
	key.onmousedown=null;
        ii++;}}

function loadImages(p, t, likelist, uidslist) {
    el = document.getElementById('imgcount');
    if (el) {
        imCount= parseInt(el.value);
        imGCount= parseInt(el.value);
    }
    else {
        imCount= 25;  
        imGCount= 25;
    }
    keys = '';
    purl = p;
    listImages = [];
    xSizes = [];
    ySizes = [];
    llist = [];
    ulist = [];
    if (t) {
	ttls = t;};
    if (likelist) {
	luids = likelist;};
    if (uidslist) {
	lklinks = document.getElementsByName("likelink");
	el = document.getElementById(likelist);
	if (el) luids = el.value;
	el = document.getElementById(uidslist);
	if (el) auids = el.value;};
    stateChanged();
        Shadowbox.init({ skipSetup: true }); 
    Shadowbox.setup(); 
 
  
} 

function stateChanged() { 
    el = document.getElementById('imgnames');
    var elUrls = document.getElementById('imgurls');
    listUrls = elUrls.value.split(",");
    var listResult = el.value.split(",");
    if (ttls) {
	el = document.getElementById(ttls);
	imgTitlez = el.value.split("****");};
    if (lklinks) {
	ulist = auids.split("****");};
    for (var j=0; j<listResult.length; j+=3) {
	listImages[listImages.length]=listResult[j];
	xSizes[xSizes.length]=listResult[j+1];
	ySizes[ySizes.length]=listResult[j+2];}
    startVisibleIndex=0;
    loadPictures(); 
    var up1 = document.getElementById("up1");
    var up2 = document.getElementById("up2");
    up1.onmousedown = upPictures;
    up2.onmousedown = upPictures;
    var down1 = document.getElementById("down1");
    var down2 = document.getElementById("down2");
    down1.onmousedown=downPictures;
    down2.onmousedown=downPictures;

}

function GetXmlHttpObject(){
    var xmlHttp=null;
    try {// Firefox, Opera 8.0+, Safari
        xmlHttp=new XMLHttpRequest();}
    catch (e) {// Internet Explorer
        try {
            xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");}
	catch (e) {
            xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");}}
    return xmlHttp;}

function getObj(name) {
    if (document.getElementById) return document.getElementById(name);
    else if (document.all) return document.all[name];
    else if (document.layers) return document.layers[name];
    else return false;}

function img_onload() {
    document.getElementById("status").style.display="none";
    document.getElementById("picture").style.display="block";
    document.getElementById("close_").style.display = "block";}

function img_onerror() {
    document.getElementById("status").style.display="none";
    document.getElementById("picture").style.display="block";
    document.getElementById("close_").style.display = "block";}

function list_img_onload() {
    document.getElementById("status_2").style.display="none";
    document.getElementById("images").style.display="block"}

function list_img_onerror() {
    document.getElementById("status_2").style.display="none";
    document.getElementById("images").style.display="block"}

function mouseUpOver() {
    var up=document.getElementById("up_img");
    up.style.background="#808080";}

function mouseUpOut() {
    var up=document.getElementById("up_img");
    up.style.background="";
    up.style.background="#707070";}

function mouseDownOver() {
    var up=document.getElementById("down_img");
    up.style.background="#808080";}

function mouseDownOut() {
    var up=document.getElementById("down_img");
    up.style.background="#707070";}

function checkLoad() {
    var img = key.firstChild;
    if((isNaN(img) && img.complete) || (browser='Opera' && checkingTimes>5)) {
	if (img != null) {
	    img.style.display = 'inline';}
        ii++;
	checkingTimes=0;
        t = setTimeout('setImage()', 20);}
    else {
	t2 = setTimeout('checkLoad()', 20);
	checkingTimes++;}}

function plusClick(event) {
    var note=this.note;
    gg=1;
    if(listSelectedImages.length>=25) {
	alert("Limit of 25th photos is reached");
	return;}
    this.onmousedown=null;
    for(var j=0;j<listSelectedImages.length;j++){
	if(listSelectedImages[j]=="") {
	    listSelectedImages[j]=note;
	    xSelectedImages[j]=xSizes[hasArrayValue(listImages, note)]; 
	    ySelectedImages[j]=ySizes[hasArrayValue(listImages, note)];
	    break;}}
    if(j==listSelectedImages.length) {
	listSelectedImages[listSelectedImages.length]=note;
	xSelectedImages[xSelectedImages.length]=xSizes[hasArrayValue(listImages, note)];
	ySelectedImages[ySelectedImages.length]=ySizes[hasArrayValue(listImages, note)];}
    setGImage();}

function hasArrayValue(m, v) {
    for(j=0;j<m.length;j++){
	if (m[j]==v) {
	    return j;}}
    return -1;}

function setGImage() {
    gKeys=document.getElementsByName("gallery");
    var minKeys=document.getElementsByName("min");
    for(gg=1;gg<=gKeys.length;gg++){
        gKey=gKeys[gg-1];
        var minusKey=minKeys[gg-1];
        if ((gg-1+startG_VisibleIndex)>=0 && (gg-1+startG_VisibleIndex)<listSelectedImages.length 
            && listSelectedImages[gg-1+startG_VisibleIndex]!=null && listSelectedImages[gg-1+startG_VisibleIndex]!="") {
            if (gKey.note==null || gKey.note=="" || (gg-1+startG_VisibleIndex>=deletedIndex)) {
                gKey.innerHTML="<IMG id='img"+gg+"' SRC=\""+path+listSelectedImages[gg-1+startG_VisibleIndex]+"\" width=\""+xSelectedImages[gg-1+startG_VisibleIndex]+"\" height=\""+ySelectedImages[gg-1+startG_VisibleIndex]+"\"  >";
                gKey.note=path+listSelectedImages[gg-1+startG_VisibleIndex];
                gKey.file=listSelectedImages[gg-1+startG_VisibleIndex];
                minusKey.note=gg-1+startG_VisibleIndex;
                minusKey.innerHTML="<IMG id='img"+gg+"' SRC=\"minus1.jpg\"  width=\"16\" height=\"16\">";
                minusKey.onmousedown=minusClick;}
        }
    	else {
    	    gKey.innerHTML = "<IMG id=\"img" + gg + "\" width=\"" + imWidth + "\" height=\"" + imHeight + "\"" + " src=\"" + purl + "/null.gif\"" + ">";
    	    gKey.note="";
    	    gKey.file="";
    	    gKey.onmousedown=null;
    	    //minusKey.innerHTML="<IMG id='img"+gg+"' width=\"16\" height=\"16\">";
    	    minusKey.innerHTML = '';
    	    minusKey.note="";
    	    minusKey.onmousedown=null;
        }
    }
    asignDragAndDrop(gKeys);
    // checking plus
    for(i=1;i<=keys.length;i++){
	key=keys[i-1];
	plusKeys=document.getElementsByName("pl");
	var plusKey=plusKeys[i-1];
	if ((i-1+startVisibleIndex)>=0 && (i-1+startVisibleIndex)<listImages.length 
	    && listImages[i-1+startVisibleIndex]!=null && listImages[i-1+startVisibleIndex]!="") {
	    if (hasArrayValue(listSelectedImages,(listImages[i-1+startVisibleIndex]))>=0) {
		plusKey.innerHTML=" Added";
		plusKey.note="";
		plusKey.onmousedown=null;
	    } else {
		plusKey.innerHTML="<IMG id='' SRC=\"plus1.jpg\"   >";
	      plusKey.note=listImages[i-1+startVisibleIndex];
	      plusKey.onmousedown=plusClick;
	  }
      } else {
	  plusKey.note="";
	  plusKey.onmousedown=null;
      }
  }
}

function checkGLoad() {
    var img= gKey.firstChild;
    if(gg > imGCount || gKey.note=='') {
	//document.getElementById('preload').style.display = 'none';
	//document.getElementById('afterPreload').style.display = 'block';
    }
    else if(isNaN(img) && img.complete) {
	//document.getElementById('i'+ii).style.background = 'gray';   
        img.style.display = 'inline';
        gg++;
        t = setTimeout('setGImage()', 20);}
    else t2 = setTimeout('checkGLoad()', 20);}

function minusClick(event) {
  var note=this.note;
  gg=1;
  deletedIndex=note;
  listSelectedImages.splice(note,1);
  xSelectedImages.splice(note,1);
  ySelectedImages.splice(note,1);
  setGImage();
  deletedIndex=-1;}

function getParam(sParamName){
    var Params = location.search.substring(1).split("&"); 
    var variable = "";
    for (var i = 0; i < Params.length; i++){ 
        if (Params[i].split("=")[0] == sParamName){ 
            if (Params[i].split("=").length > 1) variable = Params[i].split("=")[1];
            return variable;}}
    return "";}

function asignDragAndDrop(idArray) {
    //alert('sdfsdf');
    Sortable.create("afterPreload", {constraint : false, tag : "div", only : "sortblock"});
    /*Droppables.reset();
    var windowIdArray = idArray;
    for(i=0;i<windowIdArray.length;i++) {
        var windowId = windowIdArray[i];
        if(windowId.note=="") return;
        
        new Draggable(windowId,{revert:true});
        
        Droppables.remove(windowId);
        Droppables.add(windowId, {accept: 'gallery',hoverclass: 'drophover',onDrop: function(element, droppableElement) {
		    var content1 = element.innerHTML;
		    var content2 = droppableElement.innerHTML;          
		    droppableElement.innerHTML = content1;
		    element.innerHTML = content2;
		    var note1 = element.note;
		    var note2 = droppableElement.note;          
		    droppableElement.note = note1;
		    element.note = note2;
		    var file1 = element.file;
		    var file2 = droppableElement.file;          
		    droppableElement.file = file1;
		    element.file = file2;
		    changeArray(listSelectedImages,file1,file2,xSelectedImages,ySelectedImages);}});}*/
}

function changeArray(m,f1,f2,m1,m2) {
    var firstK=-1;
    var secondK=-1;
    for(j=0;j<m.length;j++){
        if (m[j]==f1){
            m[j]=f2;
        }
        else if (m[j]==f2) {
            m[j]=f1;
        }
    }
    var temp = m1[firstK];
    m1[firstK] = m1[secondK];
    m1[secondK] = temp;
    temp = m2[firstK];
    m2[firstK] = m2[secondK];
    m2[secondK] = temp;
    return;
}

// ***** Loading existing ordered imgs
function loadOrder() {
    el = document.getElementById('existnames');
    listSelectedImages = new Array();
    xSelectedImages = new Array();
    ySelectedImages = new Array();
    stateLoadChanged(el.value);
}

function stateLoadChanged(text) { 
    var listResult = text.split(",");
    for (var j=0; j<listResult.length; j++) {
	listSelectedImages[listSelectedImages.length]=listResult[j];
	xSelectedImages[xSelectedImages.length]=xSizes[hasArrayValue(listImages, listResult[j])];
	ySelectedImages[ySelectedImages.length]=ySizes[hasArrayValue(listImages, listResult[j])];
    }
    setGImage();
}
