var flicker_delay = 300;
function ShowListMessage(img,txt,color) {
	document.getElementById('bubblemsgbody').style.color = color;
	document.getElementById('bubblemsgbody').innerHTML = txt;
	if(img == '') {
		document.getElementById('bubblemsgimage').style.display = 'none';
	}
	else {
		document.getElementById('bubblemsgimage').innerHTML = img;
		document.getElementById('bubblemsgimage').style.display = '';
	}
	showOverlayBubble(1,'msg');
}
function showOverlay(show) {

    var isIE6 = DomUtils.browser.isIE6();
    if(!show) {
            document.getElementById('overlay').style.display = 'none';
            document.getElementById('login_overlay').style.display = 'none';
            if(isIE6){
                document.getElementById('shim').style.display = 'none';
            }
        }
    else {        
        var scrollX = DomUtils.getWindowScrollX();
        var scrollY = DomUtils.getWindowScrollY();
        var height = DomUtils.getElementHeight(document.body);
        var width = DomUtils.getElementWidth(document.body);
        if(height < screen.height) {
            height = (screen.height * .8);
        }

        //THIS IS FOR OPERA ONLY 
        //opacity doesn't exist, so we just don't show the overlay
        
        if (typeof window.opera == "undefined") {
            document.getElementById('overlay').style.width = width + 'px';
            document.getElementById('overlay').style.height = height + 'px';
            document.getElementById('overlay').style.display = 'block';
        }  

        //ADD IFRAME SHIM - for IE6 so select box doesn't show through the popup
        //instead of adding the code for the shim to each page, and potentially missing one, create it manually and append to the body
        if(isIE6){
            if(document.getElementById('shim') == null){				
                var shim = document.createElement('iframe');
                shim.setAttribute('src', 'javascript:false;');
                shim.setAttribute('scrolling', 'no');
                shim.setAttribute('frameborder', '0');
                shim.setAttribute('id', 'shim');

                //set needed styles for the shim
                shim.style.zIndex = 9999;
                shim.style.display = "none";
                shim.style.position = "absolute";
                shim.style.backgroundColor = "transparent";
                shim.style.top = "0px";
                shim.style.left = "0px";
                document.body.appendChild(shim);
            }  
            document.getElementById('shim').style.filter='progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)'; 
            document.getElementById('shim').style.width = width + 'px';
            document.getElementById('shim').style.height = height + 'px';
            document.getElementById('shim').style.display = 'block';
        }
    }
}
function showOverlayBubble(show,type) {
	showOverlay(show);
	if(!show && !bubbleIsClosed()) {
		document.getElementById('overlaybubble').style.left = '-1000px';
	}
	else if(show){
		if(document.getElementById('bubbledeleteconf')) {
			document.getElementById('bubbledeleteconf').style.display = (type=='conf' ? '' : 'none'); }
		if(document.getElementById('bubblelistdesc')) {
			document.getElementById('bubblelistdesc').style.display = (type=='desc' ? '' : 'none'); }
		if(document.getElementById('bubbleemail')) {
			document.getElementById('bubbleemail').style.display = (type=='email' ? '' : 'none'); }
		if(document.getElementById('bubblelistname')) {
			document.getElementById('bubblelistname').style.display = (type=='listname' ? '' : 'none'); }
		if(document.getElementById('bubbleupdate')) {
			document.getElementById('bubbleupdate').style.display = (type=='listedit' ? '' : 'none'); }
		if(document.getElementById('bubblewarning')) {
			document.getElementById('bubblewarning').style.display = (type=='warn' ? '' : 'none'); }
		if(document.getElementById('bubblemsg')) {
			document.getElementById('bubblemsg').style.display = (type=='msg' ? '' : 'none'); }
		if(document.getElementById('bubblenotlogged')) {
		        if(document.getElementById('bubbleloginform')) {
			  document.getElementById('bubbleloginform').style.display = (type=='notlogged' ? '' : 'none'); }
			document.getElementById('bubblenotlogged').style.display = ((type=='notlogged' || type=='sessiononly') ? '' : 'none'); }
		if(document.getElementById('bubblegoto')) {
			document.getElementById('bubblegoto').style.display = (type=='goto' ? '' : 'none'); }
		if(document.getElementById('bubbleselectlist')) {
			document.getElementById('bubbleselectlist').style.display = (type=='selectlist' ? '' : 'none'); }
		var width = DomUtils.getWindowWidth();
		var height = DomUtils.getWindowHeight();
		var scrollX = DomUtils.getWindowScrollX();
		var scrollY = DomUtils.getWindowScrollY();
		if(width==0 || height==0) {
			if(typeof window.opera=="undefined" && document.documentElement.clientWidth) {
				width = document.documentElement.clientWidth;
				height = document.documentElement.clientHeight;
			}
			else {
				width = document.body.clientWidth;
				height = document.body.clientHeight;
			}
		}
		if(scrollX==0 || scrollY==0) { 
			scrollX = document.documentElement.scrollLeft;
			scrollY = document.documentElement.scrollTop;
		}
		var bwidth = DomUtils.getElementWidth(document.getElementById('overlaybubble'));
		var bheight = DomUtils.getElementHeight(document.getElementById('overlaybubble'));
//alert('scrollY= '+scrollY+'\nscrollX= '+scrollX+'\nheight= '+height+'\nwidth= '+width+'\nbheight= '+bheight+'\nbwidth= '+bwidth);
        var screenCenter = getScreenCenter(parseInt(bwidth),parseInt(bheight));
        screenCenter[0] = parseInt(screenCenter[0]) + 100;
        screenCenter[0] = screenCenter[0] + 'px';
		document.getElementById('overlaybubble').style.top = screenCenter[0];
		document.getElementById('overlaybubble').style.left = screenCenter[1];
        
	}
}
function bubbleClose() {
	showOverlayBubble(0,'');
}
function bubbleIsClosed() {
	return parseInt(document.getElementById('overlaybubble').style.left)>0 ? false : true;
}
var group_view_active = 0;
function toggleGroupView(show) {
  if(!document.bubble.group_ids) return false; 
  if(document.bubble.group_ids && !document.bubble.group_ids.length) {
    group_length = 0;
  }
  else if(document.bubble.group_ids) { 
    group_length = document.bubble.group_ids.length;
  }
  for(i=0; i<group_length; i++) {
    if(!show) document.bubble.group_ids[i].checked = false;
    document.bubble.group_ids[i].disabled = !show;
  }
  if(group_length == 0) {
    if(document.bubble.group_ids.value) {
      if(!show) document.bubble.group_ids.checked = false;
      document.bubble.group_ids.disabled = !show;
    }
  }
  //Update group checkbox status
  group_view_active = show;
}
var waitloop = 0;
function addToListWait(){
    waitloop = 1;
    var theurl = document.location.href;
    var frag_pos = theurl.indexOf('#resp-');
    var theurlnofrag = theurl.substring(0,frag_pos);
    //if we have the response in it
    if(frag_pos >= 0) {
        //remove the fluff
        var frag = theurl.substring(frag_pos+6);
        if(frag == 'ok'){
             bubbleLogin();
        }
        document.location.href = theurlnofrag + '#z';
        waitloop = 0;
    }
    else {
      setTimeout("addToListWait()",2000);
    }

}

function addToList() {

  if(document.getElementById('loginframe')) document.getElementById('loginframe').src = document.getElementById('loginframe').src;

  if(!document.cookie) {
    ShowListMessage('','Възникна грешка','#666666');
  }
  else {
      ShowListMessage('<img src="' + baseurl + 'templates/v2/images/new/small_wait.gif" width=16 height=16>','Моля изчакайте докато обработим вашата заявка ...','#666666');
      ajax = new AjaxRequest('POST', baseurl + 'ulists.php', true, 3000);
      
      ajax.setParameter('type', 'additem_loggedin');
      ajax.setParameter('prod_ids', document.bubble.prod_id.value);
      ajax.setParameter('id_types', document.bubble.id_type.value);
      ajax.setCallback( callbackLists );
      setTimeout('ajax.send();',flicker_delay);
  }
}
function showOverlayBubbleSessionOnly(msg) {
  document.bubble.type.value = 'addnotlogged';
  document.getElementById('bubblesessionmsg').innerHTML = '<br>'+msg;
  showOverlayBubble(1,'sessiononly');
}
function bubbleLogin() {
		ShowListMessage('<img src="' + baseurl + 'templates/v2/images/new/small_wait.gif" width=16 height=16>','Моля изчакайте докато обработим вашата заявка ...','#666666');
		ajax = new AjaxRequest('POST', baseurl + 'ulists.php', true, 3000);
		
        ajax.setParameter('type', 'additem_login');
		ajax.setParameter('prod_ids', document.bubble.prod_id.value);
		ajax.setParameter('id_types', document.bubble.id_type.value);
		ajax.setCallback( callbackLists );
		setTimeout('ajax.send();',flicker_delay);
}
function bubbleListAction() {
        if(waitloop) document.location.href += '#resp-z';
	if(document.bubble.type.value == 'addnotlogged') {
		ShowListMessage('<img src="' + baseurl + 'templates/v2/images/new/small_wait.gif" width=16 height=16>','Моля изчакайте докато обработим вашата заявка ...','#666666');
 
		ajax = new AjaxRequest('POST', baseurl + 'ulists.php', true, 3000);
		
        ajax.setParameter('type', 'additem');
		ajax.setParameter('prod_ids', document.bubble.prod_id.value);
		ajax.setParameter('id_types', document.bubble.id_type.value);
		ajax.setParameter('list_id', 's');
		ajax.setCallback( callbackLists );
		setTimeout('ajax.send();',flicker_delay);
	}
	if(document.bubble.type.value == 'additem') {
		if(document.bubble.addtolist_type.value==1 && document.bubble.addto_list_id.value <= 0 
		   || 
		   document.bubble.addtolist_type.value==2 && document.bubble.newlist.value=='') {
			ShowListMessage('','Избрали сте невалиден списък','#666666');
		}
		else {
			ShowListMessage('<img src="' + baseurl + 'templates/v2/images/new/small_wait.gif" width=16 height=16>','Моля изчакайте докато обработим вашата заявка ...','#666666');
			ajax = new AjaxRequest('POST', baseurl + 'ulists.php', true, 3000);
			
            ajax.setParameter('type', 'additem');
			ajax.setParameter('prod_ids', document.bubble.prod_id.value);
			ajax.setParameter('id_types', document.bubble.id_type.value);
			if(document.bubble.addtolist_type.value==1) {
				ajax.setParameter('list_id', document.bubble.addto_list_id.value);
			}
			else {
				ajax.setParameter('newlist', document.bubble.newlist.value);
			}
      
			if (document.bubble.access_type) {
				for ( var i=0; i < document.bubble.access_type.length; i++) {
					if (document.bubble.access_type[i].checked) {
						ajax.setParameter('access_type', document.bubble.access_type[i].value);
					}
				}
      }
			if (document.bubble.group_ids) {
				for ( var i=0; i < document.bubble.group_ids.length; i++) {
					if (document.bubble.group_ids[i].checked) {
						ajax.setParameter('add_groups[]', document.bubble.group_ids[i].value);
					}
				}
        
        if(!document.bubble.group_ids.length) {
          if(document.bubble.group_ids.checked) {
            ajax.setParameter('add_groups[]', document.bubble.group_ids.value);
          }
        }
			}

			ajax.setCallback( callbackLists );
			setTimeout('ajax.send();',flicker_delay);
		}
	}
	else if(document.bubble.type.value == 'gotolist') {
		window.location = baseurl + "list.php" 
			+ (document.bubble.list_id.value!='' ? "?thelist=" + document.bubble.list_id.value : '');
	}
}
function bubbleListClose() {
        is_modal = false;
        if(waitloop) document.location.href += '#resp-z';
	document.bubble.addto_list_id.style.marginLeft= '-1000px';
	bubbleClose();
}
function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
	var c = ca[i];
	while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return unescape(c.substring(nameEQ.length,c.length));
	}
	return null;
}


function callbackLists(XmlResp) {
	if(!XmlResp) {
		ShowListMessage('','Възникна грешка при обработката на вашата зявка, моля опитайте отново','#CC3232');
	}
	else {
		var error = XmlResp.getElementsByTagName('error');
		var msgnb = XmlResp.getElementsByTagName("nb")[0].firstChild.nodeValue;
		var msgdesc = XmlResp.getElementsByTagName("desc")[0].firstChild.nodeValue;
		var act = XmlResp.getElementsByTagName("action")[0].firstChild.nodeValue;
		if(error.length > 0) {
			ShowListMessage('',msgdesc,'#CC3232');
		}
		else {
			if(act=='additem_loggedin') {
				var loggedin = XmlResp.getElementsByTagName("logged-in")[0].firstChild.nodeValue;
				if(loggedin < 1) {
					document.bubble.type.value = 'addnotlogged';
					showOverlayBubble(1,'notlogged');
                                        addToListWait();
				}
				else {
					document.bubble.type.value = 'additem';
					document.bubble.addto_list_id.style.marginLeft= '0px';
					var nb_lists = XmlResp.getElementsByTagName("nb_lists")[0].firstChild.nodeValue;
					if(nb_lists == 0) {
						document.getElementById('haslists').style.display = 'none';
						document.getElementById('hasnolists').style.display = '';
						document.getElementById('selectlistseparator').style.display = 'none';
						document.bubble.newlist.focus();
					}
					else {
						document.getElementById('haslists').style.display = '';
						document.getElementById('hasnolists').style.display = 'none';
						document.getElementById('selectlistseparator').style.display = 'none';
						document.getElementById('addtolistbutton').style.display = '';
					}
					var lastid = readCookie('pglastadd_list');
					document.bubble.addto_list_id.options.length = 0;
					var offset = 0;
					if(nb_lists > 1) {
						document.bubble.addto_list_id.options[0] = new Option('- избери списък -','');
						offset = 1;
					}
					cnt = 0;
					found_id = 0;
					the_id = 0;
					i = 0;
					while(cnt < nb_lists) {
						if(XmlResp.getElementsByTagName("list"+cnt)[0].childNodes[i].firstChild) {
							if(XmlResp.getElementsByTagName("list"+cnt)[0].childNodes[i].nodeName == 'id') {
								found_id = 1;
								the_id = XmlResp.getElementsByTagName("list"+cnt)[0].childNodes[i].firstChild.nodeValue;
							}
							else if(found_id && 
								XmlResp.getElementsByTagName("list"+cnt)[0].childNodes[i].nodeName == 'name') {
								found_id = 0;
								document.bubble.addto_list_id.options[cnt+offset] = new Option(
									XmlResp.getElementsByTagName("list"+cnt)[0].childNodes[i].firstChild.nodeValue,
									the_id,(lastid==the_id ? true : false));
								cnt ++;
								i = -1;
							}
						}
						i ++;
					}
					document.bubble.addto_list_id.options[cnt+offset] = new Option('- Добави в нов списък -','n');
					showOverlayBubble(1,'selectlist');
				}
			}
			else if(act == 'additem_login') {
				var loggedin = XmlResp.getElementsByTagName("login_success")[0].firstChild.nodeValue;
				if(loggedin < 1) {
					document.bubble.type.value = 'addnotlogged';
					showOverlayBubble(1,'notlogged');
				}else {
					document.bubble.type.value = 'additem';
					document.bubble.addto_list_id.style.marginLeft= '0px';
					var nb_lists = XmlResp.getElementsByTagName("nb_lists")[0].firstChild.nodeValue;
					if(nb_lists == 0) {
						document.getElementById('haslists').style.display = 'none';
						document.getElementById('hasnolists').style.display = '';
						document.getElementById('selectlistseparator').style.display = 'none';
					}
					else {
						document.getElementById('haslists').style.display = '';
						document.getElementById('hasnolists').style.display = 'none';
						document.getElementById('selectlistseparator').style.display = 'none';
					}
					var lastid = readCookie('pglastadd_list');
					document.bubble.addto_list_id.options.length = 0;
					var offset = 0;
					if(nb_lists > 1) {
						document.bubble.addto_list_id.options[0] = new Option('- избери списък -','');
						offset = 1;
					}
					cnt = 0;
					found_id = 0;
					the_id = 0;
					i = 0;
					while(cnt < nb_lists) {
						if(XmlResp.getElementsByTagName("list"+cnt)[0].childNodes[i].firstChild) {
							if(XmlResp.getElementsByTagName("list"+cnt)[0].childNodes[i].nodeName == 'id') {
								found_id = 1;
								the_id = XmlResp.getElementsByTagName("list"+cnt)[0].childNodes[i].firstChild.nodeValue;
							}
							else if(found_id && 
								XmlResp.getElementsByTagName("list"+cnt)[0].childNodes[i].nodeName == 'name') {
								found_id = 0;
								document.bubble.addto_list_id.options[cnt+offset] = new Option(
									XmlResp.getElementsByTagName("list"+cnt)[0].childNodes[i].firstChild.nodeValue,
									the_id, (lastid==the_id ? true : false));
								cnt ++;
								i = -1;
							}
						}
						i ++;
					}
					document.bubble.addto_list_id.options[cnt+offset] = new Option('- Добави в нов списък -','n');
					showOverlayBubble(1,'selectlist');
					if(nb_lists == 0) {
						document.bubble.newlist.focus();
					}
				}
			}
			else if(act=="additem") {
				var list_id = XmlResp.getElementsByTagName("list_id")[0].firstChild.nodeValue;
				document.bubble.type.value = 'gotolist';
				document.bubble.list_id.value = (list_id=='s' ? '' : list_id);
				showOverlayBubble(1,'goto');
			}
		}
	}
}
var hex_chr = "0123456789abcdef";
function rhex(num)
{
  str = "";
  for(j = 0; j <= 3; j++)
    str += hex_chr.charAt((num >> (j * 8 + 4)) & 0x0F) + hex_chr.charAt((num >> (j * 8)) & 0x0F);
  return str;
}
function str2blks_MD5(str)
{
  nblk = ((str.length + 8) >> 6) + 1;
  blks = new Array(nblk * 16);
  for(i = 0; i < nblk * 16; i++) blks[i] = 0;
  for(i = 0; i < str.length; i++) blks[i >> 2] |= str.charCodeAt(i) << ((i % 4) * 8);
  blks[i >> 2] |= 0x80 << ((i % 4) * 8);
  blks[nblk * 16 - 2] = str.length * 8;
  return blks;
}
function add(x, y)
{
  var lsw = (x & 0xFFFF) + (y & 0xFFFF);
  var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
  return (msw << 16) | (lsw & 0xFFFF);
}
function rol(num, cnt)
{
  return (num << cnt) | (num >>> (32 - cnt));
}
function cmn(q, a, b, x, s, t)
{
  return add(rol(add(add(a, q), add(x, t)), s), b);
}
function ff(a, b, c, d, x, s, t)
{
  return cmn((b & c) | ((~b) & d), a, b, x, s, t);
}
function gg(a, b, c, d, x, s, t)
{
  return cmn((b & d) | (c & (~d)), a, b, x, s, t);
}
function hh(a, b, c, d, x, s, t)
{
  return cmn(b ^ c ^ d, a, b, x, s, t);
}
function ii(a, b, c, d, x, s, t)
{
  return cmn(c ^ (b | (~d)), a, b, x, s, t);
}
function calcMD5(str)
{
  x = str2blks_MD5(str);
  a =  1732584193;
  b = -271733879;
  c = -1732584194;
  d =  271733878;

  for(i = 0; i < x.length; i += 16)
  {
    olda = a; oldb = b;
    oldc = c; oldd = d;
    a = ff(a, b, c, d, x[i+ 0], 7 , -680876936);
    d = ff(d, a, b, c, x[i+ 1], 12, -389564586);
    c = ff(c, d, a, b, x[i+ 2], 17,  606105819);
    b = ff(b, c, d, a, x[i+ 3], 22, -1044525330);
    a = ff(a, b, c, d, x[i+ 4], 7 , -176418897);
    d = ff(d, a, b, c, x[i+ 5], 12,  1200080426);
    c = ff(c, d, a, b, x[i+ 6], 17, -1473231341);
    b = ff(b, c, d, a, x[i+ 7], 22, -45705983);
    a = ff(a, b, c, d, x[i+ 8], 7 ,  1770035416);
    d = ff(d, a, b, c, x[i+ 9], 12, -1958414417);
    c = ff(c, d, a, b, x[i+10], 17, -42063);
    b = ff(b, c, d, a, x[i+11], 22, -1990404162);
    a = ff(a, b, c, d, x[i+12], 7 ,  1804603682);
    d = ff(d, a, b, c, x[i+13], 12, -40341101);
    c = ff(c, d, a, b, x[i+14], 17, -1502002290);
    b = ff(b, c, d, a, x[i+15], 22,  1236535329);    

    a = gg(a, b, c, d, x[i+ 1], 5 , -165796510);
    d = gg(d, a, b, c, x[i+ 6], 9 , -1069501632);
    c = gg(c, d, a, b, x[i+11], 14,  643717713);
    b = gg(b, c, d, a, x[i+ 0], 20, -373897302);
    a = gg(a, b, c, d, x[i+ 5], 5 , -701558691);
    d = gg(d, a, b, c, x[i+10], 9 ,  38016083);
    c = gg(c, d, a, b, x[i+15], 14, -660478335);
    b = gg(b, c, d, a, x[i+ 4], 20, -405537848);
    a = gg(a, b, c, d, x[i+ 9], 5 ,  568446438);
    d = gg(d, a, b, c, x[i+14], 9 , -1019803690);
    c = gg(c, d, a, b, x[i+ 3], 14, -187363961);
    b = gg(b, c, d, a, x[i+ 8], 20,  1163531501);
    a = gg(a, b, c, d, x[i+13], 5 , -1444681467);
    d = gg(d, a, b, c, x[i+ 2], 9 , -51403784);
    c = gg(c, d, a, b, x[i+ 7], 14,  1735328473);
    b = gg(b, c, d, a, x[i+12], 20, -1926607734);
    
    a = hh(a, b, c, d, x[i+ 5], 4 , -378558);
    d = hh(d, a, b, c, x[i+ 8], 11, -2022574463);
    c = hh(c, d, a, b, x[i+11], 16,  1839030562);
    b = hh(b, c, d, a, x[i+14], 23, -35309556);
    a = hh(a, b, c, d, x[i+ 1], 4 , -1530992060);
    d = hh(d, a, b, c, x[i+ 4], 11,  1272893353);
    c = hh(c, d, a, b, x[i+ 7], 16, -155497632);
    b = hh(b, c, d, a, x[i+10], 23, -1094730640);
    a = hh(a, b, c, d, x[i+13], 4 ,  681279174);
    d = hh(d, a, b, c, x[i+ 0], 11, -358537222);
    c = hh(c, d, a, b, x[i+ 3], 16, -722521979);
    b = hh(b, c, d, a, x[i+ 6], 23,  76029189);
    a = hh(a, b, c, d, x[i+ 9], 4 , -640364487);
    d = hh(d, a, b, c, x[i+12], 11, -421815835);
    c = hh(c, d, a, b, x[i+15], 16,  530742520);
    b = hh(b, c, d, a, x[i+ 2], 23, -995338651);

    a = ii(a, b, c, d, x[i+ 0], 6 , -198630844);
    d = ii(d, a, b, c, x[i+ 7], 10,  1126891415);
    c = ii(c, d, a, b, x[i+14], 15, -1416354905);
    b = ii(b, c, d, a, x[i+ 5], 21, -57434055);
    a = ii(a, b, c, d, x[i+12], 6 ,  1700485571);
    d = ii(d, a, b, c, x[i+ 3], 10, -1894986606);
    c = ii(c, d, a, b, x[i+10], 15, -1051523);
    b = ii(b, c, d, a, x[i+ 1], 21, -2054922799);
    a = ii(a, b, c, d, x[i+ 8], 6 ,  1873313359);
    d = ii(d, a, b, c, x[i+15], 10, -30611744);
    c = ii(c, d, a, b, x[i+ 6], 15, -1560198380);
    b = ii(b, c, d, a, x[i+13], 21,  1309151649);
    a = ii(a, b, c, d, x[i+ 4], 6 , -145523070);
    d = ii(d, a, b, c, x[i+11], 10, -1120210379);
    c = ii(c, d, a, b, x[i+ 2], 15,  718787259);
    b = ii(b, c, d, a, x[i+ 9], 21, -343485551);

    a = add(a, olda);
    b = add(b, oldb);
    c = add(c, oldc);
    d = add(d, oldd);
  }
  return rhex(a) + rhex(b) + rhex(c) + rhex(d);
}


window.ulists_js = 1;

