﻿/// <reference path="../jquery-1.2.6.js"/>

shopr.ReviewItem = function(pProductInfo) {
        this.init(pProductInfo); 
};

shopr.ReviewItem.prototype = {

    id: null,
    ImageItems: null,
    ReviewImage: null,
    ProductInfo: null,

    init: function(pProductInfo) {
        this.ProductInfo = pProductInfo;

        ReviewImage = document.getElementById("ReviewImageBox");

        this.updateTitleFromOption(this.ProductInfo.TitleIndex);
        this.updateDescFromOption(this.ProductInfo.DescIndex);

        document.getElementById("AddSite").innerHTML = this.getBaseURL();
        document.getElementById("AddDate").innerHTML = "&nbsp; | &nbsp;" + this.getDisplayDate();
        this.setImages();

    },

    getBaseURL: function() {
        var baseurl = this.ProductInfo.URL;
        if (baseurl.indexOf("http://") > -1)
            baseurl = baseurl.substr(7);

        if (baseurl.indexOf("/", 8) > -1)
            baseurl = baseurl.substring(0, baseurl.indexOf("/", 8));

        return baseurl;
    },

    getDisplayDate: function() {
        var objDate = new Date()
        return "" + (objDate.getMonth() + 1) + "/" + objDate.getDate() + "/" + objDate.getFullYear();
    },

    setImages: function() {

        this.ImageItems = new Array();
        var id = null;
        var imgobj = null;

        var count = 0;
        var image = "";
        while (image != null) {
            id = "ImageOptionDiv" + count;
            image = document.getElementById(id);
            if (image != null) {
                imgobj = new shopr.AddImageBox(id, count, this);
                this.ImageItems.push(imgobj);
                if (count == this.ProductInfo.ImageIndex)
                    this.updateImage(imgobj);
            }
            count++;
        }
    },

    updateSelected: function(ImageObj) {
        var x;
        for (x = 0; x < this.ImageItems.length; x++) {
            document.getElementById('ImageOptionDiv' + x).className = 'selImageDiv';
            //document.getElementById('ImageCheck' + x).className = 'ImageCheck';
        }

        ImageObj.updateSelected();
    },

    updateImage: function(ImageObj) {

        //create new Review Image Holder
        var ReviewImageHolder = document.getElementById('ReviewImageHolder');
        var holder = document.getElementById('ImageHolder');
        //var ImageOptionDiv = document.getElementById(ImageObj.id);

        //create new Image box for Review Image Holder        
        var ImageBox = document.createElement('span');
        ImageBox.className = 'selImageDiv';
        ImageBox.id = 'ReviewImageBox';

        //clone image node
        var ImageTag = document.getElementById('ImageOption' + ImageObj.index);
        var ImageTagClone = ImageTag.cloneNode(true);
        ImageTagClone.className = 'ImageOption';
        ImageTagClone.name = 'ImageReview';
        ImageTagClone.id = 'ImageReview';

        var myTable = document.createElement("table");
        myTable.className = 'selImageTable';
        var tb = document.createElement("tbody");
        var newTR = document.createElement("tr");
        newTR.setAttribute('valign', 'center');
        var newTD = document.createElement("td");
        newTD.setAttribute('valign', 'center');
        newTD.appendChild(ImageTagClone);
        newTR.appendChild(newTD);
        tb.appendChild(newTR);
        myTable.appendChild(tb);

        ImageBox.innerHTML = "";
        ImageBox.appendChild(myTable);

        //add ImageBox to ReviewImageHolder
        ReviewImageHolder.innerHTML = "";
        ReviewImageHolder.appendChild(ImageBox);

    },

    updateTitle: function(title) {
        if (title.length > 180)
            this.Title = title.substr(0, 180);
        else
            this.Title = title;

        var AddTitle = document.getElementById("AddTitle");
        AddTitle.innerHTML = this.Title;
    },

    updateDesc: function(desc) {
        if (desc.length > 200)
            this.Desc = desc.substr(0, 200);
        else
            this.Desc = desc;

        var AddDesc = document.getElementById("AddDesc");
        AddDesc.innerHTML = this.Desc;
    },

    updateCategory: function(catid, cattitle) {
        this.CatID = catid;

        var AddCat = document.getElementById("AddCatText");
        AddCat.innerHTML = cattitle;
    },

    updateTitleFromOption: function(index) {
        this.ProductInfo.TitleIndex = index;
        var option = document.getElementById("TitleOption" + index);
        var radio = document.getElementById("rt" + index);
        radio.checked = true;
        if (document.all) {
            this.updateTitle(option.innerText);
            textTitleEditOn(index, option.innerText);
        } else {
            this.updateTitle(option.textContent);
            textTitleEditOn(index, option.textContent);
        }


    },

    updateDescFromOption: function(index) {
        this.ProductInfo.DescIndex = index;
        var option = document.getElementById("DescOption" + index);
        var radio = document.getElementById("rd" + index);
        if (radio == null) return;
        radio.checked = true;
        var strDesc;

        var optionText;
        if (document.all)
            optionText = option.innerText;
        else
            optionText = option.textContent;

        if (optionText.length > 230)
            strDesc = optionText.substr(0, 230) + " ...";
        else
            strDesc = optionText;

        this.updateDesc(strDesc);
        textDescEditOn(index, optionText);
    },

    getShoprItem: function() {
        var si = new ShoprItem();
        si.Title = this.Title;
        si.ProductURL = this.ProductInfo.URL;
        si.ImageURL = document.getElementById('ImageReview').src;
        si.Desc = this.Desc;
        si.CatID = this.CatID;
        return si;
    }

};

ShoprItem = function() {};
ShoprItem.prototype = {
    Title: null,
    ProductURL: null,
    ImageURL: null,
    Desc: null,
    CatID: null
}
