/* Common JavaScript code used throughout the VineyardNursing.Org website *
 * by Mark Rosenstein - January, 2010
 */

function checkSearch(e) {
    var characterCode;
    if (e && e.which) {
	e = e;
	characterCode = e.which;
    } else {
	e = event;
	characterCode = e.keyCode;
    }
    if (characterCode == 13) {
	window.location = '/search.php?q='+escape($F('searchinput'));
	return(false);
    } else {
	return(true);
    }
}

function picsort(e) {
    new Ajax.Request('/admin/picsort.php?e='+e+'&'+Sortable.serialize('piclist'));
}

function addattach(page,atype) {
    new Ajax.Updater('addattachment','attachment.php?op=add&p='+page+'&t='+atype);
}

function loadattach(page,atype) {
    window.open('attachment.php?op=load&p='+page+'&t='+atype);
}

function selectAttach(id,page,atype) {
    new Ajax.Updater('attachlist', 'attachment.php?op=add2&id='+id+'&p='+page+'&t='+atype, {insertion: Insertion.Bottom});
    $('addattachment').innerHTML = '';
}

function deleteattach(id,page,atype) {
    new Ajax.Updater('attachlist', 'attachment.php?op=del&id='+id+'&p='+page+'&t='+atype);
    Sortable.create('attachlist', {tag:'div',only:'attachbox'});
}

function showtab(t) {
    var nextyear = new Date();
    nextyear.setFullYear(nextyear.getFullYear()+1);
    if (t == 'rental') {
	var e = $('propsalessearch');
	e.style.display = 'none';
	e = $('proprentalsearch');
	e.style.display = 'block';
	document.cookie = 'tab=rental;path=/;expires='+nextyear.toGMTString();
    } else {
	var e = $('proprentalsearch');
	e.style.display = 'none';
	e = $('propsalessearch');
	e.style.display = 'block';
	document.cookie = 'tab=sales;path=/;expires='+nextyear.toGMTString();
    }
}

var _slide = 0;
var _lastslide = 0;
function slideshow() {
    var e, e2;
    if (_lastslide) {
      e = $('slideimg0');
      d = $('slidediv0');
      d2 = $('slidediv1');
      c = $('slidecap0');
    } else {
      e = $('slideimg1');
      d = $('slidediv1');
      d2 = $('slidediv0');
      c = $('slidecap1');
    }
    _lastslide = 1-_lastslide;
    e.style.backgroundImage = 'url('+slides[_slide]+')';
    e.style.backgroundRepeat = 'no-repeat';
    c.innerHTML = captions[_slide];
    e.style.width = "589px";
    e.style.height = "361px";
    d.style.opacity = 0;
    d.style.filter = "alpha(opacity = 0)";
    if (urls[_slide]) {
	e.setAttribute('url', urls[_slide]);
	e.onclick = function() { window.location = this.getAttribute('url'); };
	e.className = 'clickable';
    } else {
	e.onclick = null;
	e.className = '';
    }
    d2.style.zIndex = 1;
    d.style.zIndex = 2;
    new Effect.Opacity(d, { from: 0.0, to: 1.0, duration: 0.5 });
    new Effect.Opacity(d2, { from: 1.0, to: 0.0, duration: 0.5 });
    _slide++;
    if (_slide >= slides.length) {
	_slide = 0;
    }
    setTimeout('slideshow()', 6000);
}


function addpic(t) {
    new Ajax.Updater('addpic', 'addpic.php?t='+t);
    $('addpic').style.display = 'block';
}

function apload(t) {
    var e = $('id');
    var id = 0;
    if (e) {
	id = e.value;
    }
    window.open("addpic.php?op=load&t="+t+"&e="+id, "loadpic", "width=350,height=250");
}

function apadd(t,p) {
    var e = $('id');
    var id = 0;
    var div = 'addpic';
    if (t > 0 || t == 'd') {
	div = 'pic_'+t;
    }
    if (e) {
	id = e.value;
    }
    if (t > 0 || t == 'd') {
      new Ajax.Updater('pic_'+t, 'addpic.php?op=add&t='+t+'&p='+p+'&e='+id);
    } else {
      $(div).style.display = 'none';
      new Ajax.Updater('piclist', 'addpic.php?op=add&t='+t+'&p='+p+'&e='+id, {insertion: Insertion.Bottom, onComplete:function(){ Sortable.create('piclist', {tag:"div",only:'picbox',constraint:'horizontal',onUpdate:function(){picsort(t);}}); }});
    }
}

function apsearch(t) {
    var div = 'addpic';
    if (t > 0 || t == 'd') {
	div = 'pic_'+t;
    }
    new Ajax.Updater(div, 'addpic.php?op=search&t='+t+'&kw='+$('apkw').value+'&desc='+$('desc').value+'&type='+$F('type'));
}

function picsort(t) {
    new Ajax.Request('picsort.php?e='+$('id').value+'&t='+t+'&'+Sortable.serialize('piclist'));
}

function sprm(t,p) {
    var e = $('id');
    var id = 0;
    if (e) {
	id = e.value;
    }
    new Ajax.Request('addpic.php?op=del&t='+t+'&p='+p+'&e='+id);
    $('pic_'+p).style.display = 'none';
}

function ppreplace(t) {
    new Ajax.Updater('pic_'+t, 'addpic.php?t='+t);
}

function dosearch() {
    document.searchform.submit();
}

function showPic(i,p) {
    var e = $('pic'+i);
    e.src = '/files/pic'+p+'-m.jpg';
}

function showPic2(i,p,d) {
    var e = $('pic'+i);
    e.src = '/files/pic'+p+'-l.jpg';
    e = $('desc'+i);
    e.innerHTML = d;
}

function setupTabs() {
    var sel;
    var args = arguments;
    if (document.cookie.indexOf('rtab=') != -1) {
	var pos = document.cookie.indexOf('rtab=');
	pos += 8;
	var end = document.cookie.indexOf(';', pos);
	if (end == -1) { end = document.cookie.length; }
	sel = document.cookie.substring(pos, end);
    } else {
	sel = arguments[0];
    }
    for (i = 1; i < arguments.length; i++) {
	var t = arguments[i];
	if (t == sel) {
	    $('tab'+t).style.backgroundImage = 'url(/images/tabbgactive2.gif)';
	    $('body'+t).style.display = 'block';
	} else {
	    $('tab'+t).style.backgroundImage = 'url(/images/tabbg.gif)';
	    $('body'+t).style.display = 'none';
	}
	$('tab'+t).onclick = function() {
	    document.cookie = 'rtab='+this.id;
	    for (j = 1; j < args.length; j++) {
		if ('tab'+args[j] == this.id) {
		    $('tab'+args[j]).style.backgroundImage = 'url(/images/tabbgactive.gif)';
		    $('body'+args[j]).style.display = 'block';
		} else {
		    $('tab'+args[j]).style.backgroundImage = 'url(/images/tabbg.gif)';
		    $('body'+args[j]).style.display = 'none';
		}
	    }
	}
    }
}

function clickTab(t) {
    $('tab'+t).onclick();
}

function clickday(d) {
    var e = $('day'+d);
    var p = $('id').value;
    if (e.className == 'daybooked') {
	e.className = 'dayavail';
	v = 0;
    } else {
	e.className = 'daybooked';
	v = 1;
    }
    new Ajax.Request("avail.php?p="+p+"&d="+d+"&v="+v);
}
function clickweek(d) {
    var e = $('week'+d);
    var p = $('id').value;
    oldname = e.className;
    if (oldname == 'daybooked') {
	newname = 'dayavail';
	v = 0;
    } else {
	oldname = 'dayavail';
	newname = 'daybooked';
	v = 1;
    }
    if (newname == 'dayavail') {
      e.className = '';
    } else {
      e.className = newname;
    }
    var row = e.parentNode;
    for (i = 1; i <= 7; i++) {
	if (row.childNodes[i].className == oldname) {
	    row.childNodes[i].className = newname;
	    d = row.childNodes[i].id;
	    d = d.substr(3);
	    new Ajax.Request("avail.php?p="+p+"&d="+d+"&v="+v);
	}
    }
}
function checkmonth(n) {
    if ($(n).checked) {
	$('yearround').checked = false;
    }
}
function checkyear() {
    if ($('yearround').checked) {
	for (i = 1; i <= 9; i++) {
	    $('month0'+i).checked = false;
	}
	$('month10').checked = false;
	$('month11').checked = false;
	$('month12').checked = false;
    }
}

function addcontact(b) {
    new Ajax.Updater('contactbox', 'contacttool.php?op=add&b='+b,
                     {asynchronus: false,
			     insertion: Insertion.Bottom});
}

function contactupdate(c, b, f) {
    var v = $F('contact'+c+f);
    contactmaybeclear(c);
    new Ajax.Request('contacttool.php?op=update&c='+c+'&b='+b+'&f='+f,
                     { postBody: 'v='+escape(v), evalJS: true});
}

function contactupdate2(c, b, i, t, f) {
    var v = $F('contact'+c+t+i+f);
    contactmaybeclear(c);
    new Ajax.Request('contacttool.php?op=update&c='+c+'&b='+b+'&f='+f+'&i='+i+'&t='+t,
                     { postBody: 'v='+escape(v)});
}

var contacttimers = new Array();

function contactmaybe(c, b, m) {
    var e = $('contact'+c+'info');
    e.className = 'contactoption';
    var n = document.createElement('div');
    n.className = 'drow';
    n.appendChild(document.createTextNode('Click to use existing contact:'));
    e.appendChild(n);
    for (i = 0; i < m.length; i++) {
        n = document.createElement('div');
        n.className = 'drow clickable';
        n.appendChild(document.createTextNode(m[i][1]));
        n.onClick = function() { contactselect(c, b, m[i][0]); };
        n.setAttribute('onclick', "contactselect("+c+", "+b+", "+m[i][0]+")");
        e.appendChild(n);
    }
    //alert("contactmaybe("+c+", "+b+", m)");
    contacttimers[c] = window.setTimeout("contactmaybeclear("+c+")", 10000);
}

function contactmaybeclear(c) {
    var e = $('contact'+c+'info');
    if (contacttimers[c]) {
        window.clearTimeout(contacttimers[c]);
        contacttimers[c] = 0;
    }
    if (e && e.hasChildNodes()) {
        while (e.hasChildNodes()) {
            e.removeChild(e.firstChild);
        }
        e.className = '';
    }
}

function contactselect(c, b, n) {
    new Ajax.Updater('contact'+c, 'contacttool.php?op=replace&b='+b+'&c='+c+'&n='+n);
}

function addaddress(c, b) {
    new Ajax.Updater('contact'+c+'addresses', 'contacttool.php?op=addad&b='+b+'&c='+c,
                     {asynchronus: false,
			     insertion: Insertion.Bottom});
}

function deladdress(c,b,i) {
    new Ajax.Updater('contact'+c+'addresses'+i, 'contacttool.php?op=deladdress&c='+c+		     '&b='+b+'&i='+i);
}

function addphone(c, b) {
    new Ajax.Updater('contact'+c+'phones', 'contacttool.php?op=addph&b='+b+'&c='+c,
                     {asynchronus: false,
			     insertion: Insertion.Bottom});
}

function delphone(c,b,i) {
    new Ajax.Updater('contact'+c+'phone'+i, 'contacttool.php?op=delphone&c='+c+		     '&b='+b+'&i='+i);
}

function addemail(c, b) {
    new Ajax.Updater('contact'+c+'emails', 'contacttool.php?op=addem&b='+b+'&c='+c,
                     {asynchronus: false,
			     insertion: Insertion.Bottom});
}

function delemail(c,b,i) {
    new Ajax.Updater('contact'+c+'email'+i, 'contacttool.php?op=delemail&c='+c+		     '&b='+b+'&i='+i);
}

function rmcontact(c,b) {
    new Ajax.Updater('contact'+c, 'contacttool.php?op=rm&c='+c+'&b='+b);
}

function featured(i,v) {
    new Ajax.Request('setfeature.php?id='+i+'&v='+v);
}

function showmap(u) {
    mapwin = window.open('/map.php?'+u, "hkmap", "height=400,width=450", true);
    mapwin.focus();
}

function showSeason() {
    var s = $F('seasonsel')+'season';
    var elt = $(s);
    $('hiseason').style.display = 'none';
    $('midseason').style.display = 'none';
    $('offseason').style.display = 'none';
    elt.style.display = 'block';
}
