function trim(teks) {
	teks=teks.replace(/^(\s)+/,'');
	teks=teks.replace(/(\s)+$/,'');
	return teks;
}

function valUmbal() {
	if (trim(document.frmUmbal.txtNama.value) == '') {
		window.alert("Please fill in the 'Name' field.");
		document.frmUmbal.txtNama.focus();
		return false;
	}
	if (trim(document.frmUmbal.txtTelepon.value) == '') {
		window.alert("Please fill in the 'Telephone' field.");
		document.frmUmbal.txtTelepon.focus();
		return false;
	}
	if (trim(document.frmUmbal.txtEmail.value) == '') {
		window.alert("Please fill in the 'Email' field.");
		document.frmUmbal.txtEmail.focus();
		return false;
	}
	if (document.frmUmbal.txtEmail.value.match((/(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/)) || !(document.frmUmbal.txtEmail.value.match(/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,4})(\]?)$/))) {
		window.alert("Please enter a valid email address.");
		document.frmUmbal.txtEmail.focus();
		return false;
	}
	if (trim(document.frmUmbal.txtKomentar.value) == '') {
		window.alert("Please fill in the 'Comments' field.");
		document.frmUmbal.txtKomentar.focus();
		return false;
	}
}
function valUmbalinquiry(){
	var counter=0;
	for (i=0;i<document.frmUmbal.optdata.length; i++) {
		if (document.frmUmbal.optdata[i].checked) counter++;
	}
	if(counter<1) {
		window.alert("Please select the package you want.");
		document.frmUmbal.optdata[0].focus();
		return false;
	}
/*
	if (trim(document.frmUmbal.getElementById('optdata').value) == '') {
		window.alert("Please select in the 'Paket' option.");
		document.frmUmbal.optdata.focus();
		return false;
	}
*/
	if (trim(document.frmUmbal.slctitle1.value) == '') {
		window.alert("Please select in the 'Gender' option.");
		document.frmUmbal.slctitle1.focus();
		return false;
	}
	if (trim(document.frmUmbal.txtnama1.value) == '') {
		window.alert("Please fill in the 'Name' field.");
		document.frmUmbal.txtnama1.focus();
		return false;
	}
	if (trim(document.frmUmbal.txtnoPengenal1.value) == '') {
		window.alert("Please fill in the 'Identification Number' field.");
		document.frmUmbal.txtnoPengenal1.focus();
		return false;
	}
	if (trim(document.frmUmbal.txtemail1.value) == '') {
		window.alert("Kolom 'E-mail' masih kosong. Mohon diisi.");
		document.frmUmbal.txtemail1.focus();
		return false;
	}
	if (document.frmUmbal.txtemail1.value.match((/(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/)) || !(document.frmUmbal.txtemail1.value.match(/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,4})(\]?)$/))) {
		window.alert("E-mail tidak valid. Mohon diperbaiki.");
		document.frmUmbal.txtemail1.focus();
		return false;
	}
	if (trim(document.frmUmbal.txtalamat1.value) == '') {
		window.alert("Please fill in the 'Address' field.");
		document.frmUmbal.txtalamat1.focus();
		return false;
	}
	if (trim(document.frmUmbal.txttelp1.value) == '') {
		window.alert("Please fill in the 'Telp' field.");
		document.frmUmbal.txttelp1.focus();
		return false;
	}
	if (trim(document.frmUmbal.slcstatusPerkawinan.value) == '') {
		window.alert("Please select in the 'Status' option.");
		document.frmUmbal.slcstatusPerkawinan.focus();
		return false;
	}
	if (trim(document.frmUmbal.bulanLahir1.value) == '') {
		window.alert("Please fill in the 'Birdthday' field.");
		document.frmUmbal.bulanLahir1.focus();
		return false;
	}
	if (trim(document.frmUmbal.tanggalLahir1.value) == '') {
		window.alert("Please fill in the 'Birdthday' field.");
		document.frmUmbal.tanggalLahir1.focus();
		return false;
	}
	if (trim(document.frmUmbal.tahunLahir1.value) == '') {
		window.alert("Please fill in the 'Birdthday' field.");
		document.frmUmbal.tahunLahir1.focus();
		return false;
	}
	if (trim(document.frmUmbal.txtnationality1.value) == '') {
		window.alert("Please fill in the 'Nationality' field.");
		document.frmUmbal.txtnationality1.focus();
		return false;
	}	
}
function valUmbalEvent() {	
	if (trim(document.frmUmbal.txtBooker.value) == '') {
		window.alert("Please fill in the 'Booker' field.");
		document.frmUmbal.txtBooker.focus();
		return false;
	}
	if (trim(document.frmUmbal.txtAddress.value) == '') {
		window.alert("Please fill in the 'Address field.");
		document.frmUmbal.txtAddress.focus();
		return false;
	}
	if (trim(document.frmUmbal.txtPhone.value) == '') {
		window.alert("Please fill in the 'Phone' field.");
		document.frmUmbal.txtPhone.focus();
		return false;
	}
	if (trim(document.frmUmbal.txtEmail.value) == '') {
		window.alert("Please fill in the 'Email' field.");
		document.frmUmbal.txtEmail.focus();
		return false;
	}
	if (document.frmUmbal.txtEmail.value.match((/(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/)) || !(document.frmUmbal.txtEmail.value.match(/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,4})(\]?)$/))) {
		window.alert("Please enter a valid email address.");
		document.frmUmbal.txtEmail.focus();
		return false;
	}
	if (trim(document.frmUmbal.month.value) == '') {
		window.alert("Please select Month of event.");
		document.frmUmbal.month.focus();
		return false;
	}if (trim(document.frmUmbal.date.value) == '') {
		window.alert("Please select Day of event.");
		document.frmUmbal.date.focus();
		return false;
	}if (trim(document.frmUmbal.year.value) == '') {
		window.alert("Please select Year of event.");
		document.frmUmbal.year.focus();
		return false;
	}if (trim(document.frmUmbal.txtOrder.value) == '') {
		window.alert("Please fill in the 'Minimum order' filed.");
		document.frmUmbal.txtOrder.focus();
		return false;
	}
	var theEvent = document.frmUmbal.event.value;
	if(theEvent == "wedding"){
		var counter=0;
		for (i=0;i<document.frmUmbal.weddingPaket.length; i++) {
			if (document.frmUmbal.weddingPaket[i].checked) counter++;
		}
		if(counter<1) {
			window.alert("Please select the Wedding Package you want.");
			document.frmUmbal.weddingPaket[0].focus();
			return false;
		}
		var counter=0;
		for (i=0;i<document.frmUmbal.veneu.length; i++) {
			if (document.frmUmbal.veneu[i].checked) counter++;
		}
		if(counter<1) {
			window.alert("Please select the Veneu.");
			document.frmUmbal.veneu[0].focus();
			return false;
		}
	}
	if(theEvent == "other"){
		var counter=0;
		for (i=0;i<document.frmUmbal.Paket.length; i++) {
			if (document.frmUmbal.Paket[i].checked) counter++;
		}
		if(counter<1) {
			window.alert("Please select The Package you want.");
			document.frmUmbal.Paket[0].focus();
			return false;
		}
		var counter=0;
		for (i=0;i<document.frmUmbal.eventName.length; i++) {
			if (document.frmUmbal.eventName[i].checked) counter++;
		}
		if(counter<1) {
			window.alert("Please select Name of Event.");
			document.frmUmbal.eventName[0].focus();
			return false;
		}
		var counter=0;
		for (i=0;i<document.frmUmbal.veneu.length; i++) {
			if (document.frmUmbal.veneu[i].checked) counter++;
		}
		if(counter<1) {
			window.alert("Please select the Veneu.");
			document.frmUmbal.veneu[0].focus();
			return false;
		}
	}
}
function toggleothers(sekarang) {
	switch (sekarang) {
		case "Menikah":
			document.getElementById('hidden').style.display='';
			break;
		default:			
			document.getElementById('hidden').style.display='none';
			break;
	}

}

//DIGITAL CLOCK
function init ( )
{
  timeDisplay = document.createTextNode ( "" );
  document.getElementById("clock").appendChild ( timeDisplay );
}

function updateClock ( )
{
  var currentTime = new Date ( );

  var currentHours = currentTime.getHours ( );
  var currentMinutes = currentTime.getMinutes ( );
  var currentSeconds = currentTime.getSeconds ( );

  // Pad the minutes and seconds with leading zeros, if required
  currentMinutes = ( currentMinutes < 10 ? "0" : "" ) + currentMinutes;
  currentSeconds = ( currentSeconds < 10 ? "0" : "" ) + currentSeconds;

  // Choose either "AM" or "PM" as appropriate
  var timeOfDay = ( currentHours < 12 ) ? "AM" : "PM";

  // Convert the hours component to 12-hour format if needed
  currentHours = ( currentHours > 12 ) ? currentHours - 12 : currentHours;

  // Convert an hours component of "0" to "12"
  currentHours = ( currentHours == 0 ) ? 12 : currentHours;

  // Compose the string for display
  var currentTimeString = currentHours + ":" + currentMinutes + ":" + currentSeconds + " " + timeOfDay;

  // Update the time display
  document.getElementById("clock").firstChild.nodeValue = currentTimeString;
}


//image rotator
function ImageObject(s,h,c) {
    this.src = s;
    this.href = h;
    this.caption = c;
    this.image = new Image();
    this.image.src = s;
    this.image.alt = c;
}

/**
 * Class for rotating through a list of images.  Performs a crossfade for
 * transitioning between images.  This class will clear out all children of
 * container object on initialization.
 *
 * Note: All functions were declared within parent because of setInterval scoping.
 *
 * @param imageArray {Array}  an array of ImageObject objects containing images to rotate through
 * @param container {String | Element} DOM element (or ID of element) of element containing the rotating images
 */
function ImageRotator(imageArray, container, capContainer) {
    var currentIndex = 0;          // current index in the image array

    if(imageArray.length == 0)  return;

    // convert id to element
    if(YAHOO.lang.isString(container))
        container = document.getElementById(container);

    // convert caption id to element
    if(YAHOO.lang.isString(capContainer))
        capContainer = document.getElementById(capContainer);

    // clear container of child nodes
    while(container.hasChildNodes()) {
        container.removeChild(container.firstChild);
    }

    //Check if we have a href for the images
    var index=0;
    var hrefcheck="false";
    if(index< imageArray.length) {
        if(imageArray[index].href!='') {
            hrefcheck="true";
        }
    }

    // initialize "fade-in image" (currenlty displayed)
    var fadeInDiv = document.createElement("div");
    fadeInDiv.style.position = "absolute";
    container.appendChild(fadeInDiv);

    var fadeInHref = document.createElement("a");
     if(hrefcheck=='true') {
        fadeInDiv.appendChild(fadeInHref);
    }

    var fadeInImg = document.createElement("img");
    fadeInImg.setAttribute("border", "0");

    if(hrefcheck=='true') {
    fadeInHref.appendChild(fadeInImg);
        } else {
        fadeInDiv.appendChild(fadeInImg);
    }

    // initialize "fade-out image"
    var fadeOutDiv = document.createElement("div");
    fadeOutDiv.style.position = "absolute";
    container.appendChild(fadeOutDiv);

    var fadeOutHref = document.createElement("a");
    if(hrefcheck=='true') {
    fadeOutDiv.appendChild(fadeOutHref);
        }

    var fadeOutImg = document.createElement("img");
    fadeOutImg.setAttribute("border", "0");

    if(hrefcheck=='true') {
    fadeOutHref.appendChild(fadeOutImg);
        } else {
        fadeOutDiv.appendChild(fadeOutImg);
    }

     if(capContainer != null) {
     // clear caption container of child nodes
     while(capContainer.hasChildNodes()) {
        capContainer.removeChild(container.firstChild);
    }

    // initialize "fade-in caption" (currenlty displayed)
    var fadeInCapDiv = document.createElement("div");
    fadeInCapDiv.style.position = "absolute";

    capContainer.appendChild(fadeInCapDiv);

     // initialize "fade-out caption"
    var fadeOutCapDiv = document.createElement("div");
    fadeOutCapDiv.style.position = "absolute";
    capContainer.appendChild(fadeOutCapDiv);
    }

    /**
     * Fade-out animation
     */
    var fadeOutAnim = new YAHOO.util.Anim(fadeOutImg, {
            opacity: { to: 0 }
        }, 0.8, YAHOO.util.Easing.easeNone);

    /**
     * Fade-in animation
     */
    var fadeInAnim = new YAHOO.util.Anim(fadeInImg, {
            opacity: { to: 1 }
        }, 0.8, YAHOO.util.Easing.easeNone);

     var fadeOutCapAnim = new YAHOO.util.Anim(fadeOutCapDiv, {
            opacity: { to: 0 }
        }, 0.8, YAHOO.util.Easing.easeNone);

    var fadeInCapAnim = new YAHOO.util.Anim(fadeInCapDiv, {
            opacity: { to: 1 }
        }, 0.8, YAHOO.util.Easing.easeNone);
    /**
     * Sets images attributes from an ImageObject
     *
     * @param imgEl {Element} image element to set attributes on
     * @param hrefEl {Element} anchor element to set href on
     * @param imgObj {ImageObject}  image object to pull values from
     */
    var setImageAttributes = function(imgEl, hrefEl, imgObj) {
        imgEl.setAttribute("src", imgObj.src);
        imgEl.setAttribute("alt", imgObj.caption);
        hrefEl.setAttribute("href", imgObj.href);
    }

    var setCaptionAttributes = function(divEl, imgObj) {
        divEl.innerHTML=imgObj.caption;
    }

    /**
     * Rotates to the next image
     */
    var nextImage = function() {
        if(imageArray.length <= 0)
            return;

    var fadeOutImgTemp = fadeOutImg;
    fadeOutImg= fadeInImg;
    fadeInImg = fadeOutImgTemp;

    if(capContainer != null) {
        var fadeOutCapDivTemp = fadeOutCapDiv;
        fadeOutCapDiv = fadeInCapDiv;
        fadeInCapDiv = fadeOutCapDivTemp;
    }

    currentIndex = ((currentIndex + 1) < imageArray.length) ? currentIndex + 1 : 0;
    fadeInImg.setAttribute("src",imageArray[currentIndex].src);
    if(capContainer != null) {
        setCaptionAttributes(fadeInCapDiv, imageArray[currentIndex]);
    }

    var fadeOutAnim = new YAHOO.util.Anim(fadeOutImg, {
            opacity: { to: 0 }
        }, 2, YAHOO.util.Easing.easeNone);

    var fadeInAnim = new YAHOO.util.Anim(fadeInImg, {
            opacity: { to: 1 }
        }, 2, YAHOO.util.Easing.easeNone);

    var fadeOutCapAnim = new YAHOO.util.Anim(fadeOutCapDiv, {
            opacity: { to: 0 }
    }, 2, YAHOO.util.Easing.easeNone);

    var fadeInCapAnim = new YAHOO.util.Anim(fadeInCapDiv, {
            opacity: { to: 1 }
    }, 2, YAHOO.util.Easing.easeNone);

    fadeOutAnim.animate();
    fadeInAnim.animate();
    if(capContainer != null) {
      fadeOutCapAnim.animate();
      fadeInCapAnim.animate();
    }
        setTimeout(nextImage, 6000);
    };

    // initialize images
    if(imageArray.length > 0) {
        YAHOO.util.Dom.setStyle(fadeInImg, 'opacity', 0);
        YAHOO.util.Dom.setStyle(fadeOutImg, 'opacity', 0);

        YAHOO.util.Dom.setStyle(fadeInCapDiv, 'opacity', 0);
        YAHOO.util.Dom.setStyle(fadeOutCapDiv, 'opacity', 0);

        setImageAttributes(fadeInImg, fadeInHref, imageArray[0]);
        setImageAttributes(fadeOutImg, fadeOutHref, imageArray[0]);
     if(capContainer != null) {
        setCaptionAttributes(fadeInCapDiv,imageArray[0]);
        setCaptionAttributes(fadeOutCapDiv,imageArray[0]);
              fadeInCapAnim.animate();
    }
        // fade in first image
        fadeInAnim.animate();
    }

    // set rotation interval timer
    setTimeout(nextImage, 6000);   // anonymous function for scoping issues
}

