<?php
require_once APPLICATION_PATH . '/modules/alw/views/helpers/Loadingimage.php';

use Orchard\Feature\Feature;

$artistBuilderRedesign = Feature::isEnabled('artist_builder_redesign', 'enabled', $this->featureVendorContext);
$loadCdnImage = new Alw_View_Helper_Loadingimage();
$statusXlgCdnPath = (APPLICATION_ENV != 'development') ? $loadCdnImage->getCdnAlwImagePath('statusX-lg.png') : '/images/icons/statusX-lg.png';

?>
<div id="content" class="content-div">
    <div id="bread">
        <a href="/artist"><?=$this->translate('All Artists')?></a>
    </div>
    <h1>
        <span><?=$this->artistImages($this->artist->artist_id, $this->artist->name);?></span> <?=(isset($this->artist) ? $this->artist->name : 'Create Artist')?>
    </h1>
    <!-- Start Artist Builder Wrap-->
    <div id="artistBuilderWrap">
        <!-- Start Left Content-->
        <div id="contentLeftsm">
            <!-- Start Artist Profile-->
            <?=$this->artistBuilderNavigation('info', '', $this->performanceArtistIndexEnabled);?>
            <!-- End Artist Profile-->
        </div>
        <!-- End Left Content-->
        <!-- Start Right Content-->
        <div id="contentRightlg">
            <form id="edit_artist_form" action="/artistinfo/save" method="post">
                <div id="artistFormWrap">
                    <label class="require-text"><?=$this->translate('Required')?></label>
                    <div class="artistinfo-inner">
                        <h2><?=$this->translate('General Info')?></h2>
                        <div class="top-space">
                            <fieldset class="disabled">
                            <?php //Always disable artist name update
                                $this->form->artistName->setAttrib('disabled', true);
                            ?>
                            <div class="form-group">
                                <?php if ($artistBuilderRedesign) { ?>
                                    <label><?=$this->translate('Name')?> *</label>
                                <?php } else { ?>
                                    <label><?=$this->translate('Name')?>
                                        <span class="required"> *</span>
                                    </label>
                                <?php }
                                    $this->form->artistName->setAttrib('class', 'form-control');
                                    echo $this->form->artistNameHidden->renderViewHelper();
                                ?>
                                <?=$this->form->artistName->renderViewHelper();
                                if ($artistBuilderRedesign) { ?>
                                    <div id="artistNameError" class="error top-space"><?=($this->artistNameError)?></div>
                                    <div id="artistNameError" class="error top-space"><?=($this->artistExistError)?></div>
                                <?php } else { ?>
                                    <div id="artistNameError" class="missingForm"><?=($this->artistNameError)?></div>
                                    <div id="artistNameError" class="missingForm"><?=($this->artistExistError)?></div>
                                <?php } ?>
                            </div>
                            </fieldset>
                            <?php
                            if ($this->artist->artist_type == 'artist') { ?>
                                <div class="row">
                                    <div class="form-group col-xs-12">
                                        <?php if ($artistBuilderRedesign) { ?>
                                            <label><?=$this->translate('Country')?> *</label>
                                            <?=$this->form->artistCountry->setAttrib('class', 'form-control')->renderViewHelper();?>
                                            <div id="artistCountryError" class="error top-space"><?=($this->artistCountryError)?></div>
                                        <?php } else { ?>
                                            <label><?=$this->translate('Country')?>
                                                <span class="required"> *</span>
                                            </label>
                                            <?=$this->form->artistCountry->setAttrib('class', 'form-control')->renderViewHelper();?>
                                            <div id="artistCountryError" class="missingForm"><?=($this->artistCountryError)?></div>
                                        <?php } ?>
                                    </div>
                                    <?php if (!$this->isUpdateArtistBuilderEnabled) {
                                        if ($this->artistDetailAllowed) { ?>
                                            <div class="form-group col-xs-12">
                                                <label><?=$this->translate('Postal Code')?></label>
                                                <?=$this->form->artistZip->setAttrib('class', 'form-control')->renderViewHelper();?>
                                            </div>
                                        <?php }
                                    } ?>
                                </div>
                            <?php }
                            if ($this->artistDetailAllowed) { ?>
                                <div class="form-group">
                                    <label><?=$this->translate('Website')?></label>
                                    <?=$this->form->artistUrl->setAttrib('class', 'form-control')->renderViewHelper();?>
                                    <p class="top-space example-text clear"><?=$this->translate('Example: http://www.website.com')?></p>
                                    <?php if ($artistBuilderRedesign) { ?>
                                        <div id="artistUrlError" class="error top-space">
                                            <?=($this->artistUrlError)?>
                                        </div>
                                    <?php } else { ?>
                                        <div id="artistUrlError" class="missingForm">
                                            <?=($this->artistUrlError)?>
                                        </div>
                                    <?php } ?>
                                </div>
                                <?php if ($this->artist->artist_type != 'artist') { ?>
                                    <div class="form-group">
                                        <label><?=$this->translate('Description')?></label>
                                <?php } else { ?>
                                    <div class="form-group">
                                        <label><?=$this->translate('Biography')?></label>
                                <?php } ?>
                                    <?=$this->form->biography->renderViewHelper();?>
                                </div>
                                <?php if ($this->artist->artist_type == 'artist') { ?>
                                    <div class="form-group">
                                        <label><?=$this->translate('Similar Artists:')?></label>
                                        <?=$this->form->similarArtists->setAttrib('class', 'form-control')->renderViewHelper();?>
                                        <p class="clear top-space example-text"><?=$this->translate('Example: Artist Name, Artist Name')?></p>
                                    </div>
                                <?php }
                            } ?>
                            <div class="clear"></div>
                            <h2><?=$this->translate('Social Profiles')?></h2>
                            <div class="top-space">
                                <div id="artist_social_websites_list">
                                    <?php if ($this->isUpdateArtistBuilderEnabled) { ?>
                                        <div class="form-group">
                                            <div class="element_container">
                                                <label>Instagram</label>
                                                <?=$this->socialWebsiteInputBox(array('site_id' => 46), $this->featureVendorContext)?>
                                            </div>
                                        </div>
                                        <div class="clear"></div>
                                        <div class="form-group">
                                            <div class="element_container">
                                                <label>YouTube Channel</label>
                                                <?=$this->socialWebsiteInputBox(array('site_id' => 3), $this->featureVendorContext)?></div>
                                                <div class="clear"></div>
                                                <?php if ($artistBuilderRedesign) { ?>
                                                    <div id="youtubeChannelError" class="error top-space">
                                                <?php } else { ?>
                                                    <div id="youtubeChannelError" class="missingForm">
                                                <?php } ?>
                                            </div>
                                        </div>
                                        </div>
                                        <div class="clear"></div>
                                        <div class="form-group">
                                            <div class="element_container">
                                                <label>Bandsintown</label>
                                                <?=$this->socialWebsiteInputBox(array('site_id' => 10), $this->featureVendorContext)?>
                                            </div>
                                            <p class="clear top-space example-text"><?=$this->translate('Please enter the Bandsintown Artist ID')?></p>
                                        </div>
                                        <div class="clear"></div>
                                        <div class="form-group">
                                            <div class="element_container">
                                                <label>Twitter</label>
                                                <?=$this->socialWebsiteInputBox(array('site_id' => 4), $this->featureVendorContext)?>
                                            </div>
                                        </div>
                                        <div class="clear"></div>
                                        <div class="form-group">
                                            <div class="element_container">
                                                <label>SoundCloud</label>
                                                <?=$this->socialWebsiteInputBox(array('site_id' => 24), $this->featureVendorContext)?>
                                            </div>
                                        </div>
                                        <div class="clear"></div>
                                    <?php } else { ?>
                                        <div class="form-group">
                                            <div class="element_container">
                                                <label>Twitter</label>
                                                <?=$this->socialWebsiteInputBox(array('site_id' => 4), $this->featureVendorContext)?>
                                            </div>
                                        </div>
                                        <div class="clear"></div>
                                        <div class="form-group">
                                            <div class="element_container">
                                                <label>Facebook</label>
                                                <?=$this->socialWebsiteInputBox(array('site_id' => 2), $this->featureVendorContext)?>
                                            </div>
                                        </div>
                                        <div class="clear"></div>
                                        <div class="form-group">
                                            <div class="element_container">
                                                <label>YouTube Channel</label>
                                                <?=$this->socialWebsiteInputBox(array('site_id' => 3), $this->featureVendorContext)?></div>
                                            <div class="clear"></div>
                                            <?php if ($artistBuilderRedesign) { ?>
                                                <div id="youtubeChannelError" class="error"></div>
                                            <?php } else { ?>
                                                <div id="youtubeChannelError" class="missingForm">
                                            <?php } ?>
                                        </div>
                                        <div class="clear"></div>
                                        <div class="form-group">
                                            <div class="element_container">
                                                <label>Myspace</label>
                                                <?=$this->socialWebsiteInputBox(array('site_id' => 6), $this->featureVendorContext)?>
                                            </div>
                                        </div>
                                        <div class="clear"></div>
                                    <?php } ?>
                                </div>
                                </div>
                                <div id="other_artist_social_websites_list">
                                    <?php if ($this->artist_social_websites) {
                                        if ($this->isUpdateArtistBuilderEnabled) {
                                            $socialArray = array(2, 3, 4, 46, 47, 10, 24);
                                        } else {
                                            $socialArray = array(2, 3, 4, 6);
                                        }
                                        foreach ($this->artist_social_websites as $k => $site) {
                                            if (in_array($site->site_id, $socialArray)) {
                                                continue;
                                            } ?>
                                            <div class="xinput form-group" id="xinput<?=$k?>">
                                                <label><?=ucwords($site->Site['site_name'])?></label>
                                                <div class="row">
                                                    <div class="col-xs-11">
                                                        <?=$this->socialWebsiteInputBox(array('site_id' => $site->site_id, 'name' => 'socialWebsite[' . $site->url_id . '_' . $site->site_id . ']', 'value' => $site->url, 'class' => str_replace(' . ',' ', strtolower($site->url))), $this->featureVendorContext)?>
                                                    </div>
                                                    <a class="remove-social-link handPointer pull-left" onclick="$(this).parent().parent().remove();repopulateSocialDropdown();"><img src="<?= $statusXlgCdnPath ?>" /></a>
                                                </div>
                                                <div class="missingForm socialwebsite"></div>
                                            </div>
                                            <div class="clear"></div>
                                        <?php }
                                    } ?>
                                    <div class="missingForm"><?=($this->otherUrlError)?></div>
                                </div>
                                <div class="form-group">
                                    <label><?=$this->translate('Add Another Link')?></label>
                                    <?=$this->form->artistSocialWebsiteDropdown->setAttrib('onchange', 'addSocialWebsite()')->setAttrib('class', 'form-control')->renderViewHelper();?>
                                </div>
                                </div>
                            </div>
                            <div class="clear"></div>
                        </div>
                    </div>
                    <?php if ($artistBuilderRedesign) { ?>
                        <div class="submit-tab-info">
                            <a class="btn btn-primary pageFormBtn" onmousedown="navigateAway('')"><?=$this->translate('Save General Information')?></a>
                        </div>
                    <?php } else { ?>
                        <a class="btn btn-primary pageFormBtn" onmousedown="navigateAway('')"><?=$this->translate('Save General Information')?></a>
                    <?php } ?>
                    <?=$this->form->navigateAwayUrl->renderViewHelper();?>
                    <?=$this->form->artist_id->renderViewHelper();?>
                    <?=$this->form->artistType->renderViewHelper();?>
                </div>
            </form>
        <!-- End Right Content-->
        </div>
    <!-- End Artist Builder Wrap-->
    </div>
</div>
<script type="text/javascript">

    var artistBuilderRedesign = <?=json_encode($artistBuilderRedesign)?>;
    var appleStoreId = 1;
    var addValidation = function(currentSelector){
        $(currentSelector).parents('.form-group').addClass('invalid-input');
    }

    var removeValidation = function(currentSelector){
        $(currentSelector).parents('.form-group').removeClass('invalid-input');
    }

    $(document).ready(function(){
        $('#artistUrl').live('keypress', function (e){
           if(e.keyCode == 9) {
               $('#biography_ifr').focus();
           }
        });
    });

    function validateSelect(value){
        if(!value || value <= 0) {
            return false;
        }
        return true;
    }
    function validateURL(value, required){
        if((jQuery.trim(value) != '') || required){
            var regexp = /^(((http||https||ftp):\/\/{1})|())[A-z0-9-]{2,}([.]{1}[A-z0-9-]+)*[.][A-z]{2,}([\/]{1}[A-z0-9-!:]+)*([\?]{1}[A-z0-9-!:+=&%]*)*$/;
            if (regexp.test(value)) {
                return true;
            }
            return false;
        }
        return true;
    }

    function validateArtistName(){
        var error = 0;
        if(!validateSelect($('#artistName').val())){
            error = 1;
            $('#artistNameError').html('<?=$this->translate('Missing Name')?>');
            if(artistBuilderRedesign){
                addValidation(this);
            }
        }else{
            $('#artistNameError').html('');
            if(artistBuilderRedesign){
                removeValidation(this);
            }
        }
        return error;
    }
    function validateArtistUrl(){
        var error = 0;
        if(!validateURL($('#artistUrl').val(), false)){
            error = 1;
            $('#artistUrlError').html('<?=$this->escapejs($this->translate('Invalid Website'))?>');
            if(artistBuilderRedesign){
                addValidation(this);
            }
        }else{
            $('#artistUrlError').html('');
            if(artistBuilderRedesign){
                removeValidation(this);
            }
        }
        return error;
    }

    function validateArtistCountry(){
        var error = 0;
        if(!validateSelect($('#artistCountry').val())){
            error = 1;
            $('#artistCountryError').html('<?=$this->escapejs($this->translate('Missing Artist Country'))?>');
            if(artistBuilderRedesign){
                addValidation(this);
            }
        }else{
            $('#artistCountryError').html('');
            if(artistBuilderRedesign){
                removeValidation(this);
            }
        }
        return error;
    }
    function validateOtherSocialWebsite(){
        var error = 0;
        $('.other').each(function(i, s) {
            if (artistBuilderRedesign) {
                $(this).parent().parent().find('div.error.top-space.socialwebsite').remove();
            } else {
                $(this).parent().parent().find('div.missingForm.socialwebsite').remove();
            }
            if (!validateURL($(s).val(), true)) {
                if(artistBuilderRedesign){
                    $(this).parent().parent().append('<div class="error top-space socialwebsite"><?=$this->escapejs($this->translate('Invalid Url'))?></div>');
                    error++;
                    addValidation(this);
                } else {
                    $(this).parent().parent().append('<div class="missingForm socialwebsite"><?=$this->escapejs($this->translate('Invalid Url'))?></div>');
                    error++;
                }
            } else {
                error = error > 0 ? error-- : 0;
                if(artistBuilderRedesign){
                    removeValidation(this);
                }
            }
        });
        return error;
    }
    function validateYoutubeChannelName(){
        var error = 0;
        var ytregex = /^[a-z0-9\/]+$/i;
        var channelName = $("input[name='socialWebsite[0_3]']").val();
        if(channelName.length != 0 && channelName.length < 2 || channelName.length >= 41){
            $('#youtubeChannelError').html('Channel name length must be between 2 and 40 characters');
            if(artistBuilderRedesign){
                addValidation(this);
            }
            error = 1;
            return error;
        }
        if(ytregex.test(channelName) || channelName == ''){
            $('#youtubeChannelError').html('');
            if(artistBuilderRedesign){
                removeValidation(this);
            }
        }else{
            error = 1;
            $('#youtubeChannelError').html('Invalid Youtube Channel Name');
            if(artistBuilderRedesign){
                addValidation(this);
            }
        }
        return error;
    }
    function validateForm(){
        var error = 0
        var artistType = '<?=$this->artist->artist_type?>';
        error += validateArtistName();
        error += validateArtistUrl();
        if(artistType== 'artist'){
            error += validateArtistCountry();
        }
        error += validateOtherSocialWebsite();
        error += validateYoutubeChannelName();
        error += validateSocialProfileName();
        return error;
    }
    function navigateAway(target_page_url){
        if(!target_page_url){
            target_page_url = '/artistinfo/index/<?=isset($this->artist->artist_id) ? 'artist_id/' . $this->artist->artist_id : ''?>';
        }
        var artistName = $('#artistName').val();
        var error = 0;
        error = validateForm();
        if(error<=0){
            $('#navigateAwayUrl').val(target_page_url);
            $.ajax({
                type: 'POST',
                url: '/artistinfo/checkartistexistence',
                data: 'format=json&artistName=' + encodeURIComponent(artistName) + '&artist_id=<?=$this->artist->artist_id?>',
                contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
                dataType: 'json',
                success: function(xhr, textStatus, errorThrown){
                    edit_artist_form.appendChild(CSRFP._getInputElt());
                    $('#edit_artist_form').submit();
                },
                error: function(res, textStatus, errorThrown) {
                    var obj = jQuery.parseJSON(res.responseText);
                    if(obj.code === 'ARTIST_ALREADY_EXISTS') {
                        $("#artistNameError").html(obj.error);
                        if (artistBuilderRedesign) {
                            $("#artistNameError").html(obj.error);
                            addValidation('#artistNameError');
                        }
                    }
                }
            });
        }
    }
    function addSocialWebsite(){
        var key = new Date();
        key = key.getTime();
        var site_id = $('#artistSocialWebsiteDropdown').val();
        var site_name = $('#artistSocialWebsiteDropdown option:selected').text();
        var lowercase_site_name = site_name.replace('.', '').toLowerCase();
        if(site_id && ($('.' + lowercase_site_name).html() == null || site_name == 'Other')){
            $.ajax({
                type: 'POST',
                url: '/artistinfo/getsocialwebsiteinputbox',
                data: 'format=json&site_id=' + site_id + '&site_name=' + site_name,
                dataType: 'json',
                success: function(data, textStatus, XMLHttpRequest) {
                    if ($('input.' + data.classname).length == 0 || data.classname == 'other'){
                        $('#other_artist_social_websites_list').append('\
                            <div class="xinput form-group" id="xinput' + key + '">\
                                <label>' + site_name + '</label>\
                                <div class="row">\
                                    <div class="col-xs-11">\
                                        ' + data.viewsocialwebsiteinputbox + '\
                                    </div>\
                                    <a class="remove-social-link handPointer pull-left" onclick="$(this).parent().parent().remove();repopulateSocialDropdown();"><img src="<?= $statusXlgCdnPath ?>"/></a>\
                                </div>\
                               <div class="missingForm socialwebsite"></div>\
                            </div>\
                        <div class="clear"></div>');
                        repopulateSocialDropdown();
                    }
                },
                error: function(xhr, textStatus, errorThrown) {
                }
            });
        }
        $('#artistSocialWebsiteDropdown').val('');
    }

    $(document).ready(function(){
        $('#artistName').blur(validateArtistName);
        $('#artistCountry').blur(validateArtistCountry);
        $('#artistUrl').blur(validateArtistUrl);
        // validate youtube channel name
        $("input[name='socialWebsite[0_3]']").blur(validateYoutubeChannelName);
    });

    function repopulateSocialDropdown(){
        var excluded_sites = $('div.socialInputBox input.blankInput[type=text]');
        var excluded_sites_arr = new Array();
        for(var i in excluded_sites){
            if(excluded_sites[i].name != undefined && excluded_sites[i].name != '' && excluded_sites[i].name != null && !isNaN(i)){
                var name = excluded_sites[i].name.replace('socialWebsite[', '') . replace(']', '');
                name = name.split('_');
                excluded_sites_arr.push(name[1]);
            }
        }
        $.ajax({
            type: 'POST',
            url: '/artistinfo/getsocialdropdown',
            data: 'format=json&excluded_sites=1, ' + excluded_sites_arr.join(','),
            dataType: 'json',
            success: function(data, textStatus, XMLHttpRequest) {
                $('#artistSocialWebsiteDropdown').html('');
                $('#artistSocialWebsiteDropdown').append('<option label="<?=$this->translate('Select One')?>" value=""><?=$this->translate('Select One')?></option>');
                for(var site_id in data.sites){
                    $('#artistSocialWebsiteDropdown').append('<option label="' + data.sites[site_id].site_name + '" value="' + site_id + '">' + data.sites[site_id].site_name + '</option>');
                }
                $('#artistSocialWebsiteDropdown').append('<option label="<?=$this->translate('Other')?>" value="1"><?=$this->translate('Other')?></option>');
            },
            error: function(xhr, textStatus, errorThrown) {
            }
        });
    }

    function validateSocialProfileName() {
        $('div.socialErrordiv').remove();
        var validateSocialWebsiteProfileNames = showSocialProfileError('#artist_social_websites_list :input');
        var validateArtistID = showSocialProfileError('#artist_IDs :input');
        var validateOtherSocialProfileNames = showSocialProfileError($('#other_artist_social_websites_list .input-group-addon:visible').siblings(':input'));
        if (validateSocialWebsiteProfileNames || validateOtherSocialProfileNames || validateArtistID) {
            return true;
        }
        return false;
    }
    function showSocialProfileError(inputSelector) {
        var error = 0;
        $(inputSelector).each(function() {
            if (artistBuilderRedesign) {
                var artistIdClass = $(this).attr('class').split('_');
                if ((/(\/|\?)/g).test($(this).val()) === true) {
                    var socialErrordiv = '<div class="error top-space socialwebsite socialErrordiv"><?=$this->translate('Please enter only artist name or artist id.')?></div>';
                    $('.social_placeholder_'+artistIdClass[1]).hide();
                    $(this).parents('.socialInputBox').append(socialErrordiv);addValidation(this);
                    error = 1;
                } else {
                    removeValidation(this);
                    $('.social_placeholder_'+artistIdClass[1]).show();
                }
            } else {
                if ((/(\/|\?)/g).test($(this).val()) === true) {
                    var socialErrordiv = '<div class="missingForm socialwebsite socialErrordiv"><?=$this->translate('Please enter only artist name or artist id.')?></div>';
                    $(this).parents('.socialInputBox').append(socialErrordiv);
                    error = 1;
                }
            }
        });

        if (artistBuilderRedesign && (validateYoutubeChannelName() == true)) {
            addValidation('#youtubeChannelError');
        }
        return error;
    }

    function validateArtistIdField(selector){
        var str  = $(selector).val();
        var trimString  = str.replace(/\s/g, '');
        $(selector).val(trimString);
    }

    $(window).bind('load', function() {
        repopulateSocialDropdown();
    });
    <?=$this->Richtextbox('biography', array('theme_advanced_resizing' => 'true'))?>
</script>
