
var myhost_prefix = '';
//var myhost_prefix = '/vaide';
var myhostname = 'http://' + window.location.host + myhost_prefix + '/';

var Popup = {
  open: function(options)
  {
    this.options = {
      url: '#',
      width: 600,
      height: 500,
      name:"_blank",
      location:"no",
      menubar:"no",
      toolbar:"no",
      status:"yes",
      scrollbars:"yes",
      resizable:"yes",
      left:"",
      top:"",
      normal:false
    }
    Object.extend(this.options, options || {});

    if (this.options.normal){
        this.options.menubar = "yes";
        this.options.status = "yes";
        this.options.toolbar = "yes";
        this.options.location = "yes";
    }

    this.options.width = this.options.width < screen.availWidth?this.options.width:screen.availWidth;
    this.options.height=this.options.height < screen.availHeight?this.options.height:screen.availHeight;
    var openoptions = 'width='+this.options.width+',height='+this.options.height+',location='+this.options.location+',menubar='+this.options.menubar+',toolbar='+this.options.toolbar+',scrollbars='+this.options.scrollbars+',resizable='+this.options.resizable+',status='+this.options.status
    if (this.options.top!="")openoptions+=",top="+this.options.top;
    if (this.options.left!="")openoptions+=",left="+this.options.left;
    window.open(this.options.url, this.options.name,openoptions );
    return false;
  }
}


function print_r(theObj){
  if(theObj.constructor == Array ||
     theObj.constructor == Object){
    document.write("<ul>")
    for(var p in theObj){
      if(theObj[p].constructor == Array||
         theObj[p].constructor == Object){
		document.write("<li>["+p+"] => "+typeof(theObj)+"</li>");
        document.write("<ul>")
        print_r(theObj[p]);
        document.write("</ul>")
      } else {
		document.write("<li>["+p+"] => "+theObj[p]+"</li>");
      }
    }
    document.write("</ul>")
  }
}

function str_replace (search, replace, subject, count) {
    var i = 0, j = 0, temp = '', repl = '', sl = 0, fl = 0,
            f = [].concat(search),
            r = [].concat(replace),
            s = subject,
            ra = r instanceof Array, sa = s instanceof Array;
    s = [].concat(s);
    if (count) {
        this.window[count] = 0;
    }

    for (i=0, sl=s.length; i < sl; i++) {
        if (s[i] === '') {
            continue;
        }
        for (j=0, fl=f.length; j < fl; j++) {
            temp = s[i]+'';
            repl = ra ? (r[j] !== undefined ? r[j] : '') : r[0];
            s[i] = (temp).split(f[j]).join(repl);
            if (count && s[i] !== temp) {
                this.window[count] += (temp.length-s[i].length)/f[j].length;}
        }
    }
    return sa ? s : s[0];
}

function trim(str, chars) {
	return ltrim(rtrim(str, chars), chars);
}
 
function ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
 
function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

function ajaxloader(state) {
	if(state) jQuery('#ajax-loader').css('display', 'block');
	else jQuery('#ajax-loader').css('display', 'none');
}

function togglePopup() {
	var style = $('ajax-content').style.display;

	if(style == '' || style == 'none') { $('ajax-content').style.display = 'block'; }
	if(style == 'block') { $('ajax-content').style.display = 'none'; $('ajax-content').innerHTML = '<img alt="" src="/img/ajax-loader.gif"/>'; }
}

function toggleDiv(id) {
	var style = $(id).style.display;
	if(style == '' || style == 'none') { $(id).style.display = 'block'; }
	if(style == 'block') { $(id).style.display = 'none'; }
}

function refresh() {
	window.location.reload();
}

function toggleForm(xForm,xHow){
  objElems = xForm.elements;
  for(i=0;i<objElems.length;i++){
    objElems[i].disabled = xHow;
  }
}

function sendSelectedValues(destin, toOpener, delimiter) {
	var destin = window.destination;
	if(!delimiter) var delimiter = ',';
	if(window.processor == 'tinymce') delimiter = '';
	if(!toOpener) toOpener = false;
	var c_value = "";
	var elem = document.uploadResponseForm.uploadItem;

	if(!elem.length && elem.checked) {
		c_value = elem.value;
	} else {
		for (var i=0; i < elem.length; i++) {
		   if (elem[i].checked) { c_value = c_value + elem[i].value + delimiter; }
		}
	}
	if(!toOpener) { 
		$(destin).innerHTML = $(destin).innerHTML + c_value;
	} else {
		if(window.processor == 'tinymce') { 			//if called from TinyMCE, then process tinymce textarea
			var  ed = window.opener.tinyMCE.activeEditor, args = {}, el;
			args = window.opener.tinymce.extend(args, {
				vspace : '',
				hspace : '',
				border : '',
				align : 'left'
			});
			window.opener.tinymce.extend(args, {
				src : c_value,
				alt : '',
				width : '',
				height : ''
			});

			ed.execCommand('mceInsertContent', false, '<img id="__mce_tmp" />', {skip_undo : 1});
			ed.dom.setAttribs('__mce_tmp', args);
			ed.dom.setAttrib('__mce_tmp', 'id', '');
			ed.undoManager.add();
			self.close();
		} else if(window.processor == 'photos') {
			window.opener.$(window.destination).innerHTML = c_value;
		} else if (window.opener.location.toString().indexOf('/admin/uploader')>=0) {
			window.opener.refresh();
			window.close();			
		} else /*if ($(window.destination))*/{
//			console.log(c_value);
			window.opener.$(window.destination).innerHTML = window.opener.$(window.destination).innerHTML + c_value;
		// bugs
		} /*else {
			window.opener.refresh();
			window.close();
		}*/
	}
}

function PopupCenter(pageURL,title,w,h,processor,dest) {
	if(!processor) processor = 'common';
	var left = (screen.width/2)-(w/2);
	var top = (screen.height/2)-(h/2);
	var targetWin = window.open (myhostname + pageURL, title, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=1, resizable=1, copyhistory=no, width='+w+', height='+h+', top='+top+', left='+left);
	targetWin.destination =dest;
	targetWin.processor = processor;
	//var destination = dest;
} 

function addHotOfferRow() {
	jQuery('#config-hotoffers').append('<tr><td style="padding:4px;">Hot offer</td><td style="padding:4px;"><input type="text" size="20" name="ConfigHotOfferImage[]" class="edit"></td><td style="padding:4px;"><input type="text" size="20" name="ConfigHotOfferLink[]" class="edit"></td><td style="padding:4px;"><a href="#" onclick="delHotOfferRow(jQuery(this)); return false;">[x]</a></td></tr>');
}

function delHotOfferRow(elem) {
	jQuery(elem.parent().parent().remove());
}

function addTourRow(id) {
	jQuery('#tourrows_'+id).append('<tr><td><input name="meal['+id+'][]" class="edit" maxlength="100"></td><td><input name="roomtype['+id+'][]" class="edit" maxlength="100"></td><td><input name="price1['+id+'][]" class="edit" maxlength="100"></td><td><input name="price2['+id+'][]" class="edit" maxlength="100"></td><td><input name="price3['+id+'][]" class="edit" maxlength="100"></td><td><a href="#" onclick="if ((jQuery(\'#tourrows_'+id+' tr\').size())!=4) {jQuery(this).parent().parent().remove();} else { jQuery(this).parent().parent().parent().remove(); jQuery(\'#add-row-tr-'+id+'\').remove(); } return false;">x</a></td><td></td></tr>');
}

function getOptionsList(handler, name) {
	var opts = '';
	for (var i = 0; i < handler[name].length; i++) {
		opts += '<option value="' + handler[name][i].optionValue + '">' + handler[name][i].optionDisplay + '</option>';
	}
	return opts;
}

function executeFilter(year, size, keywords, url) {
	//if(url == '/') url = myhostname;	
	if(url == '/' || url == '/search_products') url = '/categories/view/0';
	url = str_replace('//', '/', url);
	url = str_replace('//', '/', url); //once again, prevent from triple slash
	var link = myhostname + str_replace('//', '/', url);
	if(trim(year) != '') link = link + '/year:' + year;
	if(trim(size) != '') link = link + '/size:' + size;
	//if(trim(keywords) != '') link = link + '/keywords:' + encodeURIComponent(keywords);
	if(trim(keywords) != '') link = link + '/keywords:' + keywords;

	//alert(link);
	window.location.href = link;
	return false;
}

function updateCollProduct(json, id) {
	if(id) { //alert(json[id]['image'] + ' ' + json[id]['article'] + ' ' + json[id]['descr'] + ' ' + json[id]['title']);
		jQuery('#coll-image')
			.attr('width', 640)
			.attr('src', json[id]['image']);
		jQuery('#coll-article').html(json[id]['article']);
		jQuery('#coll-descr').html(json[id]['descr']);
		jQuery('#coll-title').html(json[id]['title']);
	}
	return false;
}

jQuery(document).ready(function(){
	jQuery('.collection-menuitem').click( function() { 
		var collection = jQuery(this).html();
		//jQuery('#ProductCollection option').val(collection).attr('selected', 'selected');
		ajaxloader(true);
		new Ajax.Updater('content','/products/filter/0', {asynchronous:true, evalScripts:true, onComplete:function(request, json) {ajaxloader(false)}, parameters:Form.serialize('product-filters'), requestHeaders:['X-Update', 'content']});
	})
})
